我正在尝试使用汇总来构建我的项目。我使它的大部分工作正常(包括Angular 2),但我无法转换我的一些多边形填充,因为它们调用
require()
在他们。即使
rollup-plugin-node-resolve
和
rollup-plugin-commonjs
它不会碰
require
那么我该如何转换它们呢?我可以使用的一种解决方法是将polyfill浏览器化,然后将浏览器化的bundle包含在汇总过程中,但这需要大量额外的插件,并不是一个干净的解决方案,特别是因为我认为汇总应该能够理解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
包含任何显示问题的内容。