NPM是隨同NodeJS一起安裝的包管理工具 允許用戶從NPM伺服器下載別人編寫的第三方包到本地使用 允許用戶從NPM伺服器下載並安裝別人編寫的命令行程式到本地使用 允許用戶將自己編寫的包或命令行程式上傳到NPM伺服器供別人使用 由於新版的nodejs已經集成了npm,所以npm也一併安裝好了。同樣 ...
NPM是隨同NodeJS一起安裝的包管理工具
允許用戶從NPM伺服器下載別人編寫的第三方包到本地使用
允許用戶從NPM伺服器下載並安裝別人編寫的命令行程式到本地使用
允許用戶將自己編寫的包或命令行程式上傳到NPM伺服器供別人使用
由於新版的nodejs已經集成了npm,所以npm也一併安裝好了。同樣可以通過輸入 "npm -v" 來測試是否成功安裝
如果你安裝的是舊版本的 npm,可以很容易得通過 npm 命令來升級
sudo npm install npm -g
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm
Window 系統使用以下命令
npm install npm -g
使用淘寶鏡像的命令
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm 安裝 Node.js 模塊語法格式
npm install <Module Name>
如果淘寶鏡像就是cnpm
使用 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
本地安裝:
- 1. 將安裝包放在 ./node_modules 下(運行 npm 命令時所在的目錄),如果沒有 node_modules 目錄,會在當前執行 npm 命令的目錄下生成 node_modules 目錄。
- 2. 可以通過 require() 來引入本地安裝的包。
全局安裝:
- 1. 將安裝包放在 /usr/local 下或者你 node 的安裝目錄。
- 2. 可以直接在命令行里使用。
使用全局方式安裝 express
npm install express -g
安裝過程輸出如下內容,第一行輸出了模塊的版本號及安裝位置
可以使用以下命令來查看所有全局安裝的模塊
npm list -g
如果要查看某個模塊的版本號,可以使用命令如下
npm list grunt
package.json 位於模塊的目錄下,用於定義包的屬性
package.json屬性說明:
-
name - 包名。
-
version - 包的版本號。
-
description - 包的描述。
-
homepage - 包的官網 url 。
-
author - 包的作者姓名。
-
contributors - 包的其他貢獻者姓名。
-
dependencies - 依賴包列表。如果依賴包沒有安裝,npm 會自動將依賴包安裝在 node_module 目錄下。
-
repository - 包代碼存放的地方的類型,可以是 git 或 svn,git 可在 Github 上。
-
main - main 欄位指定了程式的主入口文件,require('moduleName') 就會載入這個文件。這個欄位的預設值是模塊根目錄下麵的 index.js。
-
keywords - 關鍵字
可以使用以下命令來卸載 Node.js 模塊
npm uninstall express
卸載後,你可以到 /node_modules/ 目錄下查看包是否還存在,或者使用以下命令查看
npm ls
可以使用以下命令更新模塊
npm update express
使用以下來搜索模塊:
npm search express
創建模塊,package.json 文件是必不可少的
我們可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的結果
npm init
需要根據你自己的情況輸入。在最後輸入 "yes" 後會生成 package.json 文件。
接下來我們可以使用以下命令在 npm 資源庫中註冊用戶(使用郵箱註冊)
npm adduser
Username: mcmohd
Password:
Email: (this IS public) [email protected]
用以下命令來發佈模塊
npm publish
版本號更新原則:
語義版本號分為X.Y.Z三位,分別代表主版本號、次版本號和補丁版本號。當代碼變更時,版本號按以下原則更新。
- 如果只是修複bug,需要更新Z位。
- 如果是新增了功能,但是向下相容,需要更新Y位。
- 如果有大變動,向下不相容,需要更新X位。
npm常用命令:
-
NPM提供了很多命令,例如
install
和publish
,使用npm help
可查看所有命令。 -
使用
npm help <command>
可查看某條命令的詳細幫助,例如npm help install
。 -
在
package.json
所在目錄下使用npm install . -g
可先在本地安裝當前命令行程式,可用於發佈前的本地測試。 -
使用
npm update <package>
可以把當前目錄下node_modules
子目錄裡邊的對應模塊更新至最新版本。 -
使用
npm update <package> -g
可以把全局安裝的對應命令行程式更新至最新版。 -
使用
npm cache clear
可以清空NPM本地緩存,用於對付使用相同版本號發佈新版本代碼的人。 -
使用
npm unpublish <package>@<version>
可以撤銷發佈自己發佈過的某個版本代碼。
大家都知道國內直接使用 npm 的官方鏡像是非常慢的,這裡推薦使用淘寶 NPM 鏡像。
淘寶 NPM 鏡像是一個完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證儘量與官方服務同步。
你可以使用淘寶定製的 cnpm (gzip 壓縮支持) 命令行工具代替預設的 npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
這樣就可以使用 cnpm 命令來安裝模塊了:
cnpm install [name]
如果你遇到了使用 npm 安 裝node_modules 總是提示報錯:報錯: npm resource busy or locked.....。
可以先刪除以前安裝的 node_modules :
npm cache clean
npm install