簡體   English   中英

捆綁Node.js的CommonJS文件

[英]Bundle CommonJS files for Node.js

我有一個Node.js應用程序,所有模塊都用CommonJS編寫,有些使用es6功能,例如generator,let,const等。這一切都很好。

我想將所有這些文件捆綁到一個文件中然后uglify。 我對必要步驟的最佳猜測是:1)將所有模塊轉換為es6模塊 - 使用Babel 2)使用匯總創建捆綁並將其作為CJS文件輸出。 3)Uglify這個CJS文件。

我玩過匯總和babel並閱讀過https://duske.me/easy-es2015-compilation-with-rollup-js-and-gulp-js/等文章,如果輸入模塊已經是es6,它可以正常工作模塊。 我看了https://github.com/rollup/rollup-plugin-babel,但我正在掙扎,因為我對babel,匯總等沒有多少經驗。

我不會嘗試將CommonJS模塊轉換為ES6。 它可以完成( esnext可能是你最好的選擇 - 我不相信Babel有一個從CommonJS到ES6的插件),但你可能會遇到一些粗糙的邊緣,其中CommonJS的語義與ES6的語義不完全匹配模塊。

為什么不首先編寫ES6模塊? 這樣,您的應用程序更具有前瞻性,捆綁將表現得更具可預測性。

如果這不是一個選項,並且您的源文件需要是CommonJS,那么最好使用CommonJS捆綁器,例如Webpack或Browserify。

對於babel 5來說這是可能的,但是因為babel 6你需要一個插件來使用CommonJS模塊的普通require('module')而不是“new” require('module').default

這是它的babel插件: https//www.npmjs.com/package/babel-plugin-add-module-exports

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM