我想捆綁一個相當大的node.js CLI應用到一個單一的.js文件。 我的代碼結構如下:捆綁了大量的node.js應用到一個單一的js文件
|- main.js
|--/lib
|----| <bunch of js files>
|--/util
|----| <bunch of js files>
...etc
我可以使用main.js爲切入點,用browserify捆綁了整個事情到一個文件,但Browserify假定運行時環境是瀏覽器和替換其自己的庫(例如browserify-http
爲http
)。所以,我正在尋找一個browserify-for-node
命令
我試圖運行
$ browserify -r ./main.js:start --no-builtins --no-browser-field > myapp.js
$ echo "require('start') >> myapp.js
但我發現了一堆錯誤,當我嘗試運行$ node myapp.js
。
的想法是,除了與核心節點的依賴性都依賴整個應用程序現在是在一個單一的源文件,並且可以使用
$ node myapp.js
更新
運行===== ========下面的作品,但只有我的機器上
JMM的答案。此外,捆紮仍然沒有捕捉到所有的依賴關係,所以當我嘗試運行另一臺機器上的文件,我得到的依賴這樣的錯誤
[email protected]:~$ node myapp.js
fs.js:502
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory '/Users/ruchir/dev/xo/client/node_modules/request/node_modules/form-data/node_modules/mime/types/mime.types'
感謝:-)我已經試過,只是一個 – user1936097
確定所有選項 - 這確實創建一個單一的捆綁文件,但它仍然具有安裝在我的系統上的文件的引用,當我嘗試到另一臺機器上運行失敗。 – user1936097
這將是很好,如果這個答案完成。告訴我們檢查的標誌不會告訴我們如何使用生成的模塊 –