2015-09-26 29 views
2

我想捆綁一個相當大的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-httphttp)。所以,我正在尋找一個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' 

回答

1

退房的--node選項,它採用了其他更精細的選擇。

+0

感謝:-)我已經試過,只是一個 – user1936097

+0

確定所有選項 - 這確實創建一個單一的捆綁文件,但它仍然具有安裝在我的系統上的文件的引用,當我嘗試到另一臺機器上運行失敗。 – user1936097

+0

這將是很好,如果這個答案完成。告訴我們檢查的標誌不會告訴我們如何使用生成的模塊 –

相關問題