前端工程化 - npm
什么是npm
npm的全稱Node Package Manager,npm原先只是作為nodejs的包管理工具,然而隨著前端社區(qū)的發(fā)展,如今npm不僅是nodejs的包管理工具,還是前端js的包管理工具。
更新npm
安裝過nodejs都知道,nodejs的安裝會順便安裝上npm,所以這里不講如何安裝npm。通過命令npm update -g npm
可以進行npm的更新
墻的問題
因為墻的原因,在國內(nèi)使用npm會比較慢,這時候可以使用淘寶的npm鏡像
(方法一) 每次使用npm的時候指定鏡像,npm install -g npm --registry=https://registry.npm.taobao.org
(方法二) 安裝cnpm,npm install -g cnpm --registry=https://registry.npm.taobao.org
,之后就可以使用cnpm替代npm來進行包的安裝,更新和卸載
(方法三) 設(shè)置全局鏡像源npm config set registry https://registry.npm.taobao.org
常用命令
npm init初始化bower生成package.jsonnpm
install package-name安裝,如npm install express,可以帶上--save參數(shù),這樣package.json中會寫入該包的信息
npm uninstall package-name卸載
npm update更新
npm list查看已安裝的包列表
使用npm shrinkwrap來管理包的依賴
在項目開發(fā)中我們往往需要安裝和升級相應(yīng)的包,然而我們在開發(fā)的過程中使用的包版本和開發(fā)完成后進行部署的時候(npm install),包的版本可能會存在差異,這種差異可能就會導(dǎo)致項目運行報錯。為了避免這種錯誤的發(fā)生,我們可以使用npm shrinkwrap
來解決這個問題。
在開發(fā)過程中,引入一個新包的流程如下
執(zhí)行npm install --save package-name@package-version
進行實際開發(fā)
執(zhí)行npm shrinkwrap
將代碼,package.json和npm-shrinkwrap.json提交到版本倉庫
在開發(fā)過程中,更新一個包的流程如下
執(zhí)行npm outdated獲取項目所有依賴的更新信息
執(zhí)行npm install --save package-name@package-version
進行實際開發(fā)和功能測試
執(zhí)行npm shrinkwrap
將代碼,package.json和npm-shrinkwrap.json提交到版本倉庫
在開發(fā)過程中,刪除一個包的流程如下
執(zhí)行npm uninstall --save package-name
進行測試
執(zhí)行npm shrinkwrap
將代碼,package.json和npm-shrinkwrap.json提交到版本倉庫
創(chuàng)建私有的npm鏡像
安裝sinopianpm install -g sinopia
啟動sinopia,執(zhí)行sinopia

接著在瀏覽器地址欄中輸入http://localhost:4873/

創(chuàng)建新用戶
npm adduser --registry http://localhost:4873發(fā)布包npm publish在提交包之前需要到
~/.config/sinopia/config.yaml配置文件中刪除proxy: npmjs這行配置項,這樣才能將包提交到本地私有源安裝包,安裝包之前需要將鏡像源指向私有的源,如
npm config set registry http://localhost:4873