0.2.0 • Published 6 years ago
@mora/module-parse v0.2.0
@mora/module-parse
解析代码中的 require
, module.exports
, import
和 export
语句
注意:由于 require 和 exports 可以赋值给其它变量,其它变量也可以覆盖 require 和 exports,所以解析出来的结果可能不准备,如:
const r = require
const fs = r('fs') // 这里的 r 是解析不出来的
建议采用 import 和 export 来解析,即设置 module="esnext"
支持解析下面的语句
module="commonjs"
// REQUIRE_ONLY
require('my_module')
// REQUIRE_ASIGN
var fs = require('my_module')
let fs = require('my_module')
const fs = require('my_module')
// REQUIRE_DESTRUCT
const { stat, exists, readFile } = require('my_module')
// EXPORTS_DEFAULT
module.exports = 42
module.exports = variable
module.exports = function() {}
module.exports = function test() {}
// EXPORTS_VARIABLE
exports.a = xx
module.exports.a = xx
module="esnext"
// IMPORT_ONLY
import 'my_module'
// IMPORT_ALL
import * as fs from 'my_module'
// IMPORT_NAMED
import fs from 'my_module'
import { stat, exists, readFile } from 'my_module'
import { a as b } from 'my_module'
import _, { each, forEach } from 'lodash'
// EXPORT_DEFAULT
export default 42
export default variable
export default function() {}
export default function test() {}
// EXPORT_ASSIGN
export const A = 1
export class A {}
export function A() {}
// EXPORT_NAMED
export {A, B}
export {A as AA, B}
// EXPORT_ALL_FROM
export * from './a'
// EXPORT_NAMED_FROM
export { default } from 'foo'
export { foo, bar } from 'my_module'
export { es6 as default } from './someModule'
Installation
npm i @mora/module-parser
Usage
import parse from '@mora/module-parser'
parse(code, options)
Support
- 咨询:Mora qiuzhongleiabc@126.com
Changelog
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.