npm經常使用命令小結

目錄(更新於2016.09.23):html

一、認識和使用NPMnode

二、npm包安裝模式linux

三、npm包管理(package的安裝、卸載、升級、查看、搜索、發佈,其餘等)git

  • 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的配置路徑

五、npm使用過程當中疑點github

一、認識和使用NPM數據庫

  • 1.一、NPM是什麼

NPM(node package manager),一般稱爲node包管理器。顧名思義,它的主要功能就是管理node包,包括:安裝、卸載、更新、查看、搜索等。npm

npm的背後,是基於couchdb的一個數據庫,詳細記錄了每一個包的信息,包括做者、版本、依賴、受權信息等。它的一個很重要的做用就是:將開發者從繁瑣的包管理工做(版本、依賴等)中解放出來,更加專一於功能的開發。json

npm官網:https://npmjs.org/瀏覽器

官網文檔:https://docs.npmjs.com服務器

  • 1.二、NPM 使用介紹

NPM是隨同NodeJS一塊兒安裝的包管理工具,能解決NodeJS代碼部署上的不少問題,常見的使用場景有如下幾種:

    - 容許用戶從NPM服務器下載別人編寫的第三方包到本地使用。
    - 容許用戶從NPM服務器下載並安裝別人編寫的命令行程序到本地使用。
    - 容許用戶將本身編寫的包或命令行程序上傳到NPM服務器供別人使用。

因爲新版的nodejs已經集成了npm,因此以前npm也一併安裝好了。一樣能夠經過輸入 "npm -v" 來測試是否成功安裝。命令以下,出現版本提示表示安裝成功:

$ npm -v 2.3.0
二、npm包安裝模式

在具體介紹npm包的管理以前,咱們首先得來了解一下npm包的兩種安裝模式。

本地安裝 vs 全局安裝(重要)

node包的安裝分兩種:本地安裝、全局安裝。二者的區別以下,後面會經過簡單例子說明

  • 本地安裝:package會被下載到當前所在目錄,也只能在當前目錄下使用。
  • 全局安裝:package會被下載到到特定的系統目錄下,安裝的package可以在全部目錄下使用。
三、npm包管理

npm的包管理命令是使用頻率最高的,因此也是咱們須要緊緊記住並熟練使用的。其實無非也就是幾個動做:安裝、卸載、更新、查看、搜索等。

    3.一、安裝模塊

    本地安裝,如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版本的方法;
全局安裝模塊的目錄通常爲c:\User\Administrator\AppData\Roaming\npm\node_modules\下;
全局安裝的模塊,在代碼中直接經過require()的方式是沒有辦法調用到的。全局的安裝是供命令行使用的,就好像全局安裝了vmarket後,就能夠在命令行中直接運行vm命令。也就是能夠直接在cmd的命令行中使用。
3.二、卸載模塊,好比grunt-cli
  • npm uninstall grunt-cli: 卸載包grunt-cli
  • npm uninstall grunt-cli@"0.1.9": 卸載0.1.9版本的grunt-cli
3.三、更新模塊,好比grunt-cli,全局npm
  • npm update #升級當前目錄下的項目的全部模塊
  • npm update grunt-cli 更新
  • npm update -g npm@3.14.14,安裝指定的npm版本,同時也是更新npm版本的方法;
3.四、查看模塊,好比 grunt-cli
  • npm ls grunt-cli:查看特定包grunt-cli的信息
  • npm info grunt-cli:查看詳細的輸出信息(包括做者、版本、依賴等)。
  • npm list #列出已安裝模塊
  • npm show grunt-cli #顯示模塊詳情
3.五、搜索模塊,如 grunt-cli
  • npm search grunt-cli:搜索
3.六、發佈模塊
  • npm publish,即將本身開發的包發佈到npm官網,成功以後,能夠在https://www.npmjs.com/登陸查看發佈的模塊。而後,就能夠用npm install安裝了。
  • npm unpublish 模塊名 --force,刪除已發佈的模塊
3.七、其餘package安裝命令

運行以下命令,列出全部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
四、理解package.json字段

字段至關多,但最重要的的是下面幾個

  1.   name: package的名字(因爲他會成爲url的一部分,因此 non-url-safe 的字母不會經過,也不容許出現"."、"_"),最好先在http://registry.npmjs.org/上搜下你取的名字是否已經存在
  2.   version: package的版本,當package發生變化時,version也應該跟着一塊兒變化,同時,你聲明的版本須要經過semver的校驗(semver可自行谷歌)
  3.   dependencies: package的應用依賴模塊,應用依賴模塊會安裝到當前模塊的node_modules目錄下
  4.   devDependencies:package的開發依賴模塊,即別人要在這個package上進行開發
  5.   其餘:參見官網

五、npm使用過程當中疑點

5.一、理解sudo npm安裝,如:$ sudo npm install -g ionic
sudo命令是在linux環境中以管理員身份執行後面的命令。如爲當前帳戶添加node_modules目錄讀寫權限,命令爲sudo chown -R $(whoami) ~/.npm。
 
5.二、npm install會根據package.json來安裝相應的依賴模塊,可是安裝完成後會出現不少的文件夾,是什麼緣由呢?
緣由:這是 npm3 中做出的改變,也是最大的改變之一,5.0 用的是 npm3。npm -v 能夠查看 npm 版本。
若是你想按照package.json中的要求安裝模塊,你須要npm install 指定版本(這個版本必須還3.0之前的版本),執行命令:
npm view npm versions:列出npm 的全部有效版本
npm install -g npm@2.14.14  ,安裝指定的npm版本,同時也是下降npm版本的方法;
npm update -g npm@3.14.14,安裝指定的npm版本,同時也是更新npm版本的方法;
 
5.三、 安裝模塊過程當中出現以下提示:

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.

如圖:

緣由是如今的Node版本是v6.2.1 ;升級到最新版本的node了,又還原回原來的版本了5.7.0穩定版了,也能夠是一個穩定的版本.Node.js 5.7.0 穩定版下載地址

 

 

 

 

寫在後面:內容只是簡單地把最多見的命令,以及一些須要瞭解的內容列了出來。如要進一步瞭解,可參考官網說明。此外,npm help是咱們最好的朋友,若是忘了有哪些命令,命令下有哪些參數,可經過help進行查看。

最關鍵的:若是文章內容有誤,請指出!!!

相關文章
相關標籤/搜索