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
演示了此問題。