$ npm install babel-plugin-transform-inline-imports-commonjs
This plugin should be used instead of babel-plugin-transform-es2015-modules-commonjs
$ npm install babel-plugin-transform-inline-imports-commonjs
This plugin transforms ES modules (import
and export
), into CommonJS require
and module.exports
. import
s are transformed into lazily loaded memoized require
s. So the require
call is deferred until the imported identifier is referenced. This allows you to write idiomatic code without the performance costs of loading code up-front (I/O, parsing, and executing).
Before:
import bigModule from 'big-module';
export default function(val) {
return bigModule.doExpensiveThing(val);
}
After:
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (val) {
return (_bigModule || _bigModule2()).default.doExpensiveThing(val);
};
var _bigModule;
function _bigModule2() {
return _bigModule = _interopRequireDefault(require('big-module'));
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
The same settings that are available for babel-plugin-transform-es2015-modules-commonjs
are available for babel-plugin-transform-inline-imports-commonjs
:
// without options
{
"plugins": ["transform-inline-imports-commonjs"]
}
// with options
{
"plugins": [
["transform-inline-imports-commonjs", {
"allowTopLevelThis": true,
"strict": false,
"loose": true
}]
]
}
excludeModules
:
"excludeModules": ["atom"]
:import {TextEditor} from 'atom'; // transforms to plain `require` with interop
import foo from 'bar'; // transforms to inline import
excludeNodeBuiltins
(default: false
)
import * as path from 'path'; // transforms to plain `require` with interop
import foo from 'bar'; // transforms to inline import
© 2010 - cnpmjs.org x YWFE | Home | YWFE