當前位置:編程學習大全網 - 腳本源碼 - npm spm bower這三個包管理器,哪個比較好用

npm spm bower這三個包管理器,哪個比較好用

Bower

bower 的缺點比較明顯,最大的問題就是缺乏統壹的構建機制。但有意思的是 Google 的 Polymer 選擇了 bower 作為包管理器,因為 Polymer 是建立在兩個還沒在瀏覽器裏普遍實現的東西上的:HTML Import 和 SPDY。HTML Import 讓妳可以把 HTML, CSS, JS 寫在同壹個 HTML 文件裏作為壹個組件或是模塊,然後通過壹行代碼引入:

<link rel="import" href="my-component.html">

同時,在壹個組件裏也可以引入其他的組件,也可以直接引用遠程服務器上的組件。某種程度上 HTML import 可以取代現在的組件模塊機制。而 SPDY 是下壹代的 ponent 使用者,但用了壹段時間以後有幾個比較重要的不爽之處:

- 每壹個 component 都必須要在 component.json 中手動列出所有文件,每次更改項目結構或是重命名文件都很麻煩,我還為此寫了個 grunt 插件專門自動做這個事情。

- component 只有壹個 wiki page 列表,沒有壹個可搜索的中央數據庫,模塊的可發現度比較低。同時,github 倉庫的星數是唯壹的模塊質量指標,而 npm 則有下載統計和被依賴數量這些更實在的數據。

- 模塊發現度低帶來的另壹個問題就是不同作者的模塊之間很少出現公用的依賴。雖然 Component 的依賴是扁平的,在實際使用別人的模塊的時候依然會出現重復(同樣的問題不同的實現),這就導致很多人寧可自己造輪子,自己依賴自己,只是把 Component 當個工具而不是平臺用。

npm + Browserify

我這裏想要指出,npm 其實是壹個非常好的前端(對,沒錯,是前端)包管理方案,最主要的就是依靠 Browserify 這個神器。Browserify 最大的意義不是讓妳能在 npm 上發布前端的靜態資源,而是實現前後端的代碼***享。npm上有很多包是前後端通用的,比如我要找個現成的算法實現,什麽 levenshtein distance 啊,perlin noise 啊,gaussian distribution 啊,A* 尋路啊,npm 上壹搜壹大把。常用的庫如 jquery backbone 之類的,只要妳想得到的基本上都有 npm 版本。需要什麽直接 npm install 就可以用在瀏覽器端的項目裏了,Component 和 Bower 在這方面跟 npm 完全沒有可比性,spm 就更不提了。開發流程上來說也極其省心,項目用 CommonJS 寫,不需要任何配置,給壹個入口文件就行!還有壹個官方工具 watchify,壹行命令跑起,保存文件自動構建,連 grunt gulp 都不需要。

  • 上一篇:商標轉讓哪個平臺好
  • 下一篇:什麽叫小姐牌呢?
  • copyright 2024編程學習大全網