在一个文件夹中,我有以下JavaScript文件main.js
:
const o = require("./other.js");
console.log(o.f());
以及以下JavaScript文件other.js
:
function f() { return 1.23; }
exports.f = f;
我需要一个不依赖于其他文件的等效文件,如以下JavaScript文件bundle.js
:
function f() { return 1.23; }
console.log(f());
我该怎么做呢?
我尝试使用Rollup Nodejs扩展,使用以下命令:
rollup main.js -o bundle.js -f cjs
但是,require
语句仍保留在bundle.js
文件中,如果我删除other.js
,它将不再工作。
1条答案
按热度按时间9q78igpj1#
你是对的--你要找的是一个捆绑包,但是,Rollup需要特定的配置来适应你的用例;默认情况下,它不支持CommonJS导入(
require
),且如您所见,将保持它们原样。如果您想使用Rollup,您可以通过创建一个配置文件来解决这个问题,该文件类似于:
并将其传递给
rollup --config bla.js
。您还可以使用不同的捆绑器,比如esbuild;运行
npx esbuild main.js --bundle --outfile=out.js
将完全满足您的需求,两者都使用有很多优点和缺点- esbuild非常快,但被认为比其他捆绑包不成熟。