NPM是隨同NodeJS一塊兒安裝的包管理工具,能解決NodeJS代碼部署上的不少問題,常見的使用場景有如下幾種:vue
容許用戶從NPM服務器下載別人編寫的第三方包到本地使用。node
容許用戶從NPM服務器下載並安裝別人編寫的命令行程序到本地使用。git
容許用戶將本身編寫的包或命令行程序上傳到NPM服務器供別人使用。web
因爲新版的nodejs已經集成了npm,因此以前npm也一併安裝好了。一樣能夠經過輸入 "npm -v" 來測試是否成功安裝。命令以下,出現版本提示表示安裝成功:express
npm -v 3.10.3
若是你安裝的是舊版本的npm,能夠很容易得經過npm 命令來升級,命令以下:npm
sudo npm installnpm -g
若是是 Window 系統使用如下命令便可:json
npm installnpm -g
npm 安裝 Node.js 模塊語法格式以下:gulp
npm install <Module Name>
如下實例,咱們使用npm 命令安裝經常使用的 Node.js web框架模塊 express:服務器
npm install express
安裝好以後,express 包就放在了工程目錄下的 node_modules 目錄中,所以在代碼中只須要經過 require('express') 的方式就好,無需指定第三方包路徑。
var express = require('express');框架
npm 的包安裝分爲本地安裝(local)、全局安裝(global)兩種,從敲的命令行來看,差異只是有沒有-g而已,好比
npm install express # 本地安裝 npm install express -g # 全局安裝
若是出現如下錯誤:
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
解決辦法爲:
npm config set proxy null
將安裝包放在 ./node_modules 下(運行npm 命令時所在的目錄),若是沒有 node_modules 目錄,會在當前執行npm 命令的目錄下生成 node_modules 目錄。
能夠經過 require() 來引入本地安裝的包。
將安裝包放在 /usr/local 下或者你 node 的安裝目錄。
能夠直接在命令行裏使用。
若是你但願具有二者功能,則須要在兩個地方安裝它或使用npm link
你可使用如下命令來查看全部全局安裝的模塊:
npm ls -g
默認安裝的是最新版本,若是要安裝指定版本則需在包名後面加@指定版本號,以下:
npm install gulp@3.9.1
package.json 位於模塊的目錄下,用於定義包的屬性。
"name" - 包名
"version" - 版本號
"author" - 做者
"description" - 包的描述
"dependencies" - 包的依賴
"licenses" - 包的許可證
"devDependencies" - 包的開發依賴
"engines" - 包的運行引擎
"homepage" - 包的官網
"repository" - 包的倉庫,能夠是 git 或 svn,git 可在 Github 上。
main - 字段是一個模塊ID,它是一個指向你程序的主要項目。就是說,若是你包的名字叫 express,而後用戶安裝它,而後require("express")。
keywords - 關鍵字
-S, --save 安裝包信息將加入到dependencies(生產階段的依賴),例如:
npm install vue --save
package.json 文件的 dependencies 字段:
"dependencies": { "vue": "^2.0.1" }
-D, --save-dev 安裝包信息將加入到devDependencies(開發階段的依賴),因此開發階段通常使用它,例如:
npm install vue --save-dev
package.json 文件的 devDependencies字段:
"devDependencies": { "vue": "^2.0.1" }
項目對模塊的依賴可使用下面的 3 種方法來表示(假設當前版本號是 1.1.0 ):
兼容模塊新發布的補丁版本:~1.1.0、1.1.x、1.1
兼容模塊新發布的小版本、補丁版本:^1.1.0、1.x、1
兼容模塊新發布的大版本、小版本、補丁版本:*、x
咱們可使用如下命令來卸載 Node.js 模塊。
npm uninstall express
卸載後,你能夠到 /node_modules/ 目錄下查看包是否還存在
npm ls
咱們可使用如下命令檢查模塊是否已通過時:
npm outdated express
咱們可使用如下命令更新模塊:
npm update express
使用如下來搜索模塊:
npm search express
建立模塊,package.json 文件是必不可少的。咱們可使用npm 生成 package.json 文件,生成的文件包含了基本的結果。
npm init
命令執行後會出現不少提示輸入,你須要根據你本身的狀況輸入。在最後輸入 "yes" 後會生成 package.json 文件。
接下來咱們可使用如下命令在npm 資源庫中註冊用戶(使用郵箱註冊):
npm adduser Username: saboran Password: Email: (this IS public) saboran@163.com
接下來咱們就用如下命令來發布模塊:
npm publish
若是你以上的步驟都操做正確,你就能夠跟其餘模塊同樣使用npm 來安裝。
你們都知道國內直接使用npm 的官方鏡像是很是慢的,這裏推薦使用淘寶npm 鏡像。
淘寶npm 鏡像是一個完整npmjs.org 鏡像,你能夠用此代替官方版本(只讀),同步頻率目前爲 10分鐘 一次以保證儘可能與官方服務同步。
你可使用淘寶定製的 cnpm (gzip 壓縮支持) 命令行工具代替默認的npm
npm install -g cnpm --registry=https://registry.npm.taobao.org
這樣就可使用 cnpm 命令來安裝模塊了:
cnpm install [name]