gpt4 book ai didi

javascript - 为 Node.js 捆绑 CommonJS 文件

转载 作者:搜寻专家 更新时间:2023-11-01 00:00:10 26 4
gpt4 key购买 nike

我有一个 Node.js 应用程序,所有模块都是用 CommonJS 编写的,有些模块使用 es6 功能,例如生成器、let、const 等。这一切都按原样正常工作。

我想将所有这些文件捆绑到一个文件中,然后对其进行 uglify 处理。我对必要步骤的最佳猜测是:1) 将所有模块转换为 es6 模块——使用 Babel2) 使用 rollup 创建 bundle 并将其输出为 CJS 文件。3) 丑化这个 CJS 文件。

我玩过 rollup 和 babel 并阅读过诸如 https://duske.me/easy-es2015-compilation-with-rollup-js-and-gulp-js/ 之类的文章如果输入模块已经是 es6 模块,它工作正常。我看过https://github.com/rollup/rollup-plugin-babel但我很挣扎,因为我对 babel、rollup 等没有太多经验。

最佳答案

我不会尝试将 CommonJS 模块转换为 ES6。可以做到(esnext 可能是你最好的选择——我不相信 Babel 有从 CommonJS 到 ES6 的插件),但你可能会遇到一些粗糙的边缘,CommonJS 的语义与语义不完全匹配ES6 模块。

为什么不直接编写 ES6 模块呢?这样一来,您的应用程序就更具前瞻性,并且捆绑的行为也更具可预测性。

如果这不是一个选项并且您的源文件需要是 CommonJS,那么您最好使用 CommonJS bundler ,例如 Webpack 或 Browserify。

关于javascript - 为 Node.js 捆绑 CommonJS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36908061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com