我有一个Node.js应用程序,其中所有模块都使用CommonJS编写,有些使用es6功能,例如generator,let,const等。这一切都正常。
我想将所有这些文件捆绑到一个文件中然后对其进行uglify。我对必要步骤的最佳猜测是: 1)将所有模块转换为es6模块 - 使用Babel 2)使用汇总创建捆绑并将其作为CJS文件输出。 3)丑化这个CJS文件。
我玩过汇总&如果输入模块已经是es6模块,那么可以阅读https://duske.me/easy-es2015-compilation-with-rollup-js-and-gulp-js/这样的文章。而且我已经看过https://github.com/rollup/rollup-plugin-babel但我正在挣扎,因为我对babel,汇总等没有多少经验。
答案 0 :(得分:1)
我不会尝试将CommonJS模块转换为ES6。它可以完成(esnext可能是你最好的选择 - 我不相信Babel有一个从CommonJS到ES6的插件),但你可能会遇到一些粗略的边缘,其中CommonJS的语义不太匹配ES6模块的语义。
为什么不首先编写ES6模块?这样,您的应用程序更具有前瞻性,并且捆绑将表现得更具可预测性。
如果这不是一个选项而且您的源文件需要是CommonJS,那么最好使用CommonJS捆绑包,例如Webpack或Browserify。
答案 1 :(得分:0)
对于babel 5来说这是可能的,但是因为babel 6你需要一个插件来使用CommonJS模块的正常require('module')
而不是" new" require('module').default
这是babel插件:https://www.npmjs.com/package/babel-plugin-add-module-exports