2012-09-08 71 views
7

我有很多JS 代碼段和 文件跨多個項目共享。我必須複製 - 將它們複製到每個項目的單個文件中,或者將它們作爲cdn上的單個文件提供。兩者都是壞主意。JavaScript的依賴管理和構建工具

是否有像JavaScript的Maven的任何依賴管理和構建工具?理想情況下,它需要一組js依賴關係並構建一個可以在cdn上服務的js文件。

我可以寫一個腳本來做到這一點。但是我正在尋找能夠與JS相比的Maven。


更新2014:基於這裏的答案和我的研究,以下是最流行的工具:

鮑爾,NPM,RequireJS,Browserify,的WebPack,咕嚕,咕嘟咕嘟

回答

5

RequireJS,但是這是一種與Maven不同的是,你要求它做的與Maven不同。有任何數量的JS組合器/縮小器,如jekyll-combiner和其他數十億個。

如果你是使用 Maven,JavaScript Maven Tools可能是感興趣的。如果你不是,我不知道統一的方式來指定,下載,合併等任意構建系統。一些node.js的東西可能是有用的,但我從來沒有用過node.js上下文,所以我不確定。

+0

謝謝,它們中的任何一個在構建時是否將多個文件合併/構建爲單個文件? –

+0

@JohnS「構建時」的意思是什麼?你怎麼建?我在編譯時使用了Maven的組合器。 –

+0

你使用哪個組合器與maven,哪一個你認爲更好?是否有任何接受像maven而不是文件路徑的依賴關係? –

3

看看grunt。這是非常靈活的JavaScript項目的構建工具。由jquery團隊和其他大型項目使用。它結合,縮小,測試,lint js文件,wtitten在JavaScript中,有任何你想要的幾十個插件

4

http://webjars.org/將JS庫打包爲JAR文件,並使它們在Maven下可用。

RequireJS不是WebJars的替代品;它補充了它。 RequireJS將在運行時使用公共JS文件(在CDN上),而Webjars將在構建時下載必要的文件,並讓您自己託管它們。

由於大多數JS文件不託管在CDN上,我使用Webjars在構建時下載必要的JS文件,並使用RequireJS引用它們。這樣我就得到了兩全其美的好處。

+1

WebJars只是包含所有靜態資源清理的zip文件。我非常喜歡它,但人們繼續低估Maven解決客戶端依賴問題。不知道爲什麼:-(比使用涼亭和下載整個freit GitHub回購國際海事組織更好,更優雅 – aruizca

+0

我做了我的選擇WebJars。我已經查看了[其他選項](http://centurion.nfors。com/w/programming/javascript/start#javascript_and_maven),但發現WebJars最容易入門。 –