3、npm包管理(package的安裝、卸載、升級、查看、搜索、發布,其他等)
- npm install [-g] 本地或全局安裝模塊
- npm uninstall [-g] 本地或全局卸載模塊
- npm update 更新模塊
- npm ls 查看安裝的模塊
- npm list 列出已安裝模塊
- npm show 顯示模塊詳情
- npm info 查看模塊的詳細信息
- npm search 搜索模塊
- npm publish 發布模塊
- npm unpublish 刪除已發布的模塊
- npm -v 或 npm version顯示版本信息
- npm view npm versions 列出npm 的所有有效版本
- npm install -g npm@2.14.14 /npm update -g npm@2.14.14 安裝指定的npm版本
- npm init 引導創建一個package.json文件,包括名稱、版本、作者這些信息等
- npm outdated #檢查模塊是否已經過時
- npm root [-g] 查看包的安裝路徑,輸出 node_modules的路徑,
- npm help 查看某條命令的詳細幫助 例如輸入npm help install
- npm config 管理npm的配置路徑
1、認識和使用NPM
- 1.1、NPM是什么
NPM(node package manager),通常稱為node包管理器。顧名思義,它的主要功能就是管理node包,包括:安裝、卸載、更新、查看、搜索等。
npm的背后,是基於couchdb的一個數據庫,詳細記錄了每個包的信息,包括作者、版本、依賴、授權信息等。它的一個很重要的作用就是:將開發者從繁瑣的包管理工作(版本、依賴等)中解放出來,更加專注於功能的開發。
npm官網:https://npmjs.org/
- 1.2、NPM 使用介紹
NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,常見的使用場景有以下幾種:
由於新版的nodejs已經集成了npm,所以之前npm也一並安裝好了。同樣可以通過輸入 "npm -v" 來測試是否成功安裝。命令如下,出現版本提示表示安裝成功:
$ npm -v 2.3.0
在具體介紹npm包的管理之前,我們首先得來了解一下npm包的兩種安裝模式。
node包的安裝分兩種:本地安裝、全局安裝。兩者的區別如下,后面會通過簡單例子說明
- 本地安裝:package會被下載到當前所在目錄,也只能在當前目錄下使用。
- 全局安裝:package會被下載到到特定的系統目錄下,安裝的package能夠在所有目錄下使用。
npm的包管理命令是使用頻率最高的,所以也是我們需要牢牢記住並熟練使用的。其實無非也就是幾個動作:安裝、卸載、更新、查看、搜索等。
3.1、安裝模塊
本地安裝,如grunt-cli
- npm install grunt-cli:安裝包grunt-cli,默認會安裝最新的版本
- npm install grunt-cli@"0.1.9":安裝0.1.9版本的grunt-cli
- npm install grunt-cli --save 或 npm install grunt-cli -S:安裝包grunt-cli並將信息將加入到package.json文件的dependencies(生產階段的依賴)
- npm install grunt-cli --save-dev 或 npm install grunt-cli -D:安裝包grunt-cli並將包信息寫入package.json文件的devDependencies(開發階段的依賴)配置中,這樣代碼提交到github時,就不用提交node_modules這個文件.
- npm install grunt-cli --save-optional 或 npm install grunt-cli -O:安裝包grunt-cli並將信息將加入到optionalDependencies(可選階段的依賴)
模塊的依賴都被寫入了package.json文件后,他人打開項目的根目錄(項目開源、內部團隊合作),使用npm install命令可以根據dependencies配置安裝所有的依賴包
npm install

普通安裝完畢后會產生一個node_modules目錄,其目錄下就是安裝的各個node模塊。
全局安裝,如npm
- npm install -g npm :全局安裝npm
- npm install -g npm@2.14.14 :安裝指定的npm版本,同時也是降低和更新npm版本的方法;
- npm uninstall grunt-cli: 卸載包grunt-cli
- npm uninstall grunt-cli@"0.1.9": 卸載0.1.9版本的grunt-cli
- npm update #升級當前目錄下的項目的所有模塊
- npm update grunt-cli 更新
- npm update -g npm@3.14.14,安裝指定的npm版本,同時也是更新npm版本的方法;
- npm ls grunt-cli:查看特定包grunt-cli的信息
- npm info grunt-cli:查看詳細的輸出信息(包括作者、版本、依賴等)。
- npm list #列出已安裝模塊
- npm show grunt-cli #顯示模塊詳情
- npm search grunt-cli:搜索
- npm publish,即將自己開發的包發布到npm官網,成功之后,可以在https://www.npmjs.com/登錄查看發布的模塊。然后,就可以用npm install安裝了。
- npm unpublish 模塊名 --force,刪除已發布的模塊
運行如下命令,列出所有npm install可能的參數形式
- npm -v 或npm version 顯示版本
- npm init 會引導你創建一個package.json文件,包括名稱、版本、作者這些信息等
- npm view npm versions 列出npm 的所有有效版本
- npm outdated 檢查模塊是否已經過時,此命令會列出所有已經過時的包,可以及時進行包的更新
- npm root [-g]查看包的安裝路徑,輸出 node_modules的路徑

- npm help 查看某條命令的詳細幫助 例如輸入npm help install,系統在默認的瀏覽器或者默認的編輯器中打開本地nodejs安裝包的文件/nodejs/node_modules/npm/html/doc/cli/npm-install.html
- npm config 管理npm的配置路徑
基礎語法
npm config set <key> <value> [-g|--global] npm config get <key> npm config delete <key> npm config list npm config edit npm get <key> npm set <key> <value> [-g|--global]
對於config這塊用得最多應該是設置代理,解決npm安裝一些模塊失敗的問題
例如我在公司內網,因為公司的防火牆原因,無法完成任何模塊的安裝,這個時候設置代理可以解決
npm config set proxy=http://dev-proxy.oa.com:8080
又如國內的網絡環境問題,某官方的IP可能被和諧了,幸好國內有好心人,搭建了鏡像,此時我們簡單設置鏡像
npm config set registry="http://r.cnpmjs.org"
也可以臨時配置,如安裝淘寶鏡像
npm install -g cnpm --registry=https://registry.npm.taobao.org
字段相當多,但最重要的的是下面幾個
- name: package的名字(由於他會成為url的一部分,所以 non-url-safe 的字母不會通過,也不允許出現"."、"_"),最好先在http://registry.npmjs.org/上搜下你取的名字是否已經存在
- version: package的版本,當package發生變化時,version也應該跟着一起變化,同時,你聲明的版本需要通過semver的校驗(semver可自行谷歌)
- dependencies: package的應用依賴模塊,應用依賴模塊會安裝到當前模塊的node_modules目錄下
- devDependencies:package的開發依賴模塊,即別人要在這個package上進行開發
- 其他:參見官網
5、npm使用過程中疑點
fs: re-evaluating native module sources is not supported.
If you are using the graceful-fs module, please update it to a more recent version.
寫在后面:內容只是簡單地把最常見的命令,以及一些需要了解的內容列了出來。如要進一步了解,可參考官網說明。此外,npm help是我們最好的朋友,如果忘了有哪些命令,命令下有哪些參數,可通過help進行查看。
最關鍵的:如果文章內容有誤,請指出!!!
