2013-06-21 114 views
6

我正在使用Node.js在JavaScript中實現客戶端應用程序。因爲我將在許多機器上部署該軟件,所以我想盡量減少我分發的軟件包的大小。特別是,我想從node_modules中刪除任何不必要的文件。爲客戶端部署壓縮node_modules

對於初學者來說,這意味着減少和修剪依賴關係樹,npm可以爲我做。但我也想刪除所有package.json文件和(特別是)部署時不需要的任何其他文件。在我使用的許多軟件包中有大量測試,多個文件版本(縮小,瀏覽等)等等。我只需要運行應用程序實際使用的JavaScript文件。否則,我會分發幾個100Kb的文件,這些文件實際上並未使用。

我知道node-browserify,但我的應用程序將運行在CommonJS環境中,而不是瀏覽器,所以我想保持模塊獨立並使用require加載它們。

我在考慮寫一咕嚕插件,使用走在required依賴關係樹,翻出在運行時所需要的JavaScript文件,因此他們可以使用require(只需直接加載模塊,而不加載並將其寫入到一個樹形結構需要package.json)。但在我解決之前,我想確保沒有人爲我做這件事。

回答

2

FWIW:grunt-package-minifier。由於我們正在開發cross-browser extension framework,所以我的用例有點不尋常。和Browserify一樣,並且與標準的NodeJS部署不同,我們希望將包括任何CommonJS模塊在內的分佈規模減至最小。但與Browserify不同,我們支持CommonJS,因此我們可以保留模塊結構而不是將所有內容連接成一個大文件。

本質上,我從node_modules中除去所有package.json,README,測試文件等,但將基本JavaScript文件保存在可供CommonJS模塊加載器使用的結構中。

2

GRUN - 封裝 - minifier沒有發現(這是不是一個實際的答案。我想commet以上的答案,但我沒有足夠的聲譽還:()。

NPM安裝咕嚕 - 封裝 - minifier --save-dev 密碼: npm WARN package.json [email protected]沒有版本庫字段 npm WARN package.json [email protected]沒有自述文件數據 npm ERR!404 404未找到:grunt-package- minifier npm ERR!404 npm ERR!404'grunt-package-minifier'不在npm註冊表中

+0

I prob乾脆沒有把它添加到NPM中,但它可以從Github通過我的答案中的鏈接獲得。 –