1.0.1 • Published 6 years ago
require-esmodule v1.0.1
require-esmodule
require a compiled es6 module and handle exports.default.
Install
$ npm i require-esmoduleUsage
// foo.js
Object.defineProperty(exports, '__esModule', {value: true})
exports.default = {
foo: 'default-foo'
}
exports.foo = 'foo'// bar.js
module.exports = {
default: {
bar: 'default-bar'
},
bar: 'bar'
}// baz.js
module.exports = null// qux.js
const {
requireModule,
getExports
} = require('require-esmodule')
console.log(requireModule('/path/to/foo').foo) // 'default-foo'
console.log(requireModule('/path/to/foo', false).foo) // 'foo'
console.log(requireModule('/path/to/bar').bar) // 'bar'
// bar.js is not a es6 module
console.log(requireModule('/path/to/baz')) // nullrequireModule(id: string, requireDefault? : boolean = true)
- id
stringABSOLUTE path of the module - requireDefault?
boolean=truewhether should require export default. Defaults totrue.
Returns any the module exports
requireDefault as false
const foo = requireModule('./foo', false)is equivalent to:
import * as foo from './foo'while
const foo = requireModule('./foo')is equivalent to:
import foo from './foo'The purpose of require-esmodule is to detect and make it easier to get the default exports of es modules, so the default value of requireDefault is set to true
getExports(exports: any, requireDefault?)
Detect and get the real exports from the return value of require(id)