# output.dynamicImportInCjs
类型: | boolean |
---|---|
CLI: | --dynamicImportInCjs/--no-dynamicImportInCjs |
默认: | true |
虽然 CommonJS 输出最初只支持 require(…) 语法来引入依赖,但最近的 Node 版本也开始支持 import(…) 语法,这是从 CommonJS 文件中引入 ES 模块的唯一方法。如果这个选项默认值为 true,表示 Rollup 会在 CommonJS 输出中保持外部依赖以 import(…) 表达式动态引入。将值设置为 false,以使用 require(…) 语法重写动态引入。
// 输入
import('external').then(console.log);
// 设置 dynamicImportInCjs 为 true 或不设置的 cjs 输出
import('external').then(console.log);
// 设置 dynamicImportInCjs 为 false 的 cjs 输出
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(
n,
k,
d.get
? d
: {
enumerable: true,
get: function () {
return e[k];
}
}
);
}
});
}
n.default = e;
return Object.freeze(n);
}
Promise.resolve()
.then(function () {
return /*#__PURE__*/ _interopNamespaceDefault(require('external'));
})
.then(console.log);