NPM簡單入門

npm 使用介紹

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 命令安裝模塊

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');框架

1.全局安裝與本地安裝

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
1.1 本地安裝
  • 將安裝包放在 ./node_modules 下(運行npm 命令時所在的目錄),若是沒有 node_modules 目錄,會在當前執行npm 命令的目錄下生成 node_modules 目錄。

  • 能夠經過 require() 來引入本地安裝的包。

1.2 全局安裝
  • 將安裝包放在 /usr/local 下或者你 node 的安裝目錄。

  • 能夠直接在命令行裏使用。

若是你但願具有二者功能,則須要在兩個地方安裝它或使用npm link
你可使用如下命令來查看全部全局安裝的模塊:

npm ls -g
1.3 安裝指定版本

默認安裝的是最新版本,若是要安裝指定版本則需在包名後面加@指定版本號,以下:

npm install gulp@3.9.1

2. 使用 package.json

package.json 位於模塊的目錄下,用於定義包的屬性。

2.1 Package.json 屬性說明
  • "name" - 包名

  • "version" - 版本號

  • "author" - 做者

  • "description" - 包的描述

  • "dependencies" - 包的依賴

  • "licenses" - 包的許可證

  • "devDependencies" - 包的開發依賴

  • "engines" - 包的運行引擎

  • "homepage" - 包的官網

  • "repository" - 包的倉庫,能夠是 git 或 svn,git 可在 Github 上。

  • main - 字段是一個模塊ID,它是一個指向你程序的主要項目。就是說,若是你包的名字叫 express,而後用戶安裝它,而後require("express")。

  • keywords - 關鍵字

2.2 將安裝包寫入生產環境的依賴

-S, --save 安裝包信息將加入到dependencies(生產階段的依賴),例如:

npm install vue --save

package.json 文件的 dependencies 字段:

"dependencies": {
    "vue": "^2.0.1"
  }
2.3 將安裝包寫入開發環境的依賴

-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 鏡像。
淘寶npm 鏡像是一個完整npmjs.org 鏡像,你能夠用此代替官方版本(只讀),同步頻率目前爲 10分鐘 一次以保證儘可能與官方服務同步。
你可使用淘寶定製的 cnpm (gzip 壓縮支持) 命令行工具代替默認的npm

npm install -g cnpm --registry=https://registry.npm.taobao.org

這樣就可使用 cnpm 命令來安裝模塊了:

cnpm install [name]

安小下同窗