2
我正在尝试使用Rollup构建我的项目。我大部分工作(包括Angular 2),但我无法改变我的一些polyfills,因为他们打电话给他们require()
。即使使用rollup-plugin-node-resolve
和rollup-plugin-commonjs
,它也根本不会触及require
。如何获得Rollup转换require()调用?
那么我该如何转换它们呢?我可以使用的一种解决方法是Browserify polyfills,然后在汇总过程中包含browserified bundle,但这需要大量额外的插件,并不完全是一个干净的解决方案,特别是因为我认为Rollup应该能够理解CommonJS的。
下面是一些的Node.js测试代码:
"use strict";
let rollup = require("rollup");
let fs = require("fs");
let resolve = require("rollup-plugin-node-resolve");
let commonjs = require("rollup-plugin-commonjs");
rollup.rollup({
entry: "src/main.js",
plugins: [
resolve({
jsnext: true,
main: true
}),
commonjs({
include: '**', // also tried src/** node_modules/** and a lot of other stuff.
// Leaving this undefined stops rollup from working
}),
]
}).then(function(bundle) {
bundle.write({
format: "iife",
dest: "www/bundle.js"
})
});
然后使用一个简单的文件作为src/main.js
只包含行require("./some-file.js");
和包含任何一个src/some-file.js
演示了此问题。