對於JavaScript來講。包管理器並不是一個新概念,npm和bower是JavaScript的兩個最流行的包管理器工具,JavaScript的包管理器還有volo、ringojs、component。這些包管理器相比,npm和bower支持的JavaScript庫和模塊最多。javascript
volo:http://www.volojs.org/ 。一個基於Node.js的工具,可用於高速建立項目、加入依賴庫、本身主動化常見的任務。前端
ringojs:http://ringojs.org/ ,
Ringo是基於JVM的JavaScript平臺。針對server端應用進行了優化。用於開發多線程的JavaScript程序。java
Ringo峯值了大量內建的模塊,遵循CommonJS標準。Ringo基於Mozilla的Rhino JavaScript引擎。而Rhino JavaScript引擎是JDK 6以上內嵌的腳本引擎。Ringo在Rhino的基礎上進行了加強。主要是多線程編程這部分。
rp是RingoJS的包管理器,其目標是爲本地RingoJS安裝提供簡易的包管理,以及在遠程包註冊表中公佈包。webpack
Component:https://github.com/componentjs/component 。這個包管理器項目已經中止維護了。git
Jam:http://jamjs.org/ 。一個JavaScript的包管理器,可以管理依賴、高速載入和模塊化,與Bower相似,僅僅管理前端的JavaScript模塊。github
webpack:http://webpack.github.io/ ,一款開源的模塊載入器兼打包工具,它能把各類資源好比JS(含JSX)、coffee、樣式(含less/sass)、圖片等都做爲模塊來使用和處理。web
jspm:http://jspm.io/ ,是基於SystemJS的Javascript包管理器,是基於動態的ES6模塊載入器之上構建的工具。npm
browserify:http://browserify.org/ ,讓開發人員使用相似於Node.js的require()方式來組織瀏覽器端的JavaScript代碼,經過預編譯讓前端JavaScript可以直接使用Node NPM安裝的一些庫。編程
npm主要處理兼容Node.js的JavaScript模塊,而Bower聚焦於整個Web平臺,可以提供包括模塊、腳本、CSS樣式表、HTML模板、圖片Image、字體的包。json
故npm主要用於Node.js開發。bower每每工做於client。
npm和bower使用了互不兼容的組織模式,可以在同一個項目中一塊兒使用,它們使用了不一樣的元數據文件,npm是package.json。bower是bower.json,而且它們把包安裝到不一樣的文件夾下。
一般使用npm管理server端的包,使用bower管理client的包。
與Java Maven不一樣。JavaScript的包管理器主要用於查找包、安裝包、管理包的版本號。
npm除此以外還提供了簡單的build相關和test相關的任務。
1)在安裝bower或npm後。在項目根文件夾首先應運行
bower init npm init
包管理器會詢問一些項目設置相關的問題。
一一回答後包管理器就會爲項目建立bower.json或package.json配置文檔。
2)要搜索可用的包,運行
bower search <關鍵詞> npm search <關鍵詞>
包管理器會從網絡倉庫中搜出一堆包列表顯示。
3)要安裝包,運行
bower install <包名> npm install <包名>
要安裝包的指定版本號。命令語法例如如下:
bower install <包名>#<包版本號> npm install <包名>@<包版本號>
還可以把項目使用的每一個包的版本號信息都保存到項目的元數據文件裏。包管理器(包括第三方的包管理器)都可以使用元數據文件來監護client的維護、構建、測試和啓動任務。
固然,最佳的方法仍是把包的版本號信息保存到項目的元數據配置文件裏。使用–save選項。命令語法例如如下:
bower install --save <包名>#<包版本號> npm install --save <包名>@<包版本號>