npm包管理器

包管理器 Node Package Manager:html

1類:本地開發使用的包 (devDependencies),如:gulp
2類:項目依賴包 (dependencies),如:jquery
node

升級NodeJS: 這裏使用n來管理node版本,更受歡迎的是使用nvm來管理:http://www.cnblogs.com/fanlinqiang/p/7741217.html
jquery

npm i n -g

n stable  //升級到最新版本git

nv0.12.2     //升級到指定版本github

注:n模塊是專門用來管理nodejs版本的 express

注:windows下升級npm: npm install npm@latest -g  npm

注:windows下升級node:下載指定版本 .msi 文件,安裝到歷史安裝目錄,即完成版本更新json

     (附帶最新版的npm, 可經過命令:where node,查看當前node的安裝目錄)。gulp

初始化(生成package.json ,即npm腳本):windows

npm init

 

注:參數 -y 初始化過程當中一路綠燈(一路yes)

安裝包:

npm install [包名]

//例如:npm install gulp

 

注:install可簡寫爲 i

注:參數 --global 簡寫 -g  ,全局安裝,,默認爲裝在本地

注:參數 --save-dev 簡寫 -D,開發依賴包,寫入package.json中的devDependencies

注:參數 --save 簡寫 -S,項目上線依賴包,寫入package.json中的dependencies

# 只安裝生產環境(dependencies)包:

npm i --product

# 卸載包:

npm remove | uninstall [包名]

注:參數 --global 全局卸載,簡寫 -g

#查看包信息:

npm info [包名]

#安裝具體某個版本包:

npm i [包名]@[版本號] -D

//例:npm i gulp@3 -D     

         npm i gulp@2.7 -D

#查看已安裝的包及其依賴包結構:

npm ls

#查看指定已安裝包及其依賴

npm list | grep [包名]

#查看已過時的包:

npm outdated [包名]

注:包名可爲空

#更新已安裝包到最新版本:

npm update

#登陸npm

npm login

#發佈包

npm publish

執行package.json中自定義的腳本scripts:

如:

npm run iu

#更新npm至最新版本:

npm install -g npm

#清除緩存:
npm cache clean

注:    package.json中的版本號控制中的 ^ 表示保證第一位爲鎖定,其餘位爲最新版本,

如:當package.json,記錄gulp爲^1.7.2而最新版本爲1.8.5,則init時會下載1.8.5

~保證前兩位爲鎖定,如:~1.7.2 (經常使用)

*保證最新版本,如: *

不帶任何符號,只有版本號,如:1.7.2,則構建時只會下載對應的版本號 (經常使用)

 注:packge.json中的name是發佈包時的惟一標識,所以不能重複

nrm

nrm 是一個管理 npm 源的工具。用過 ruby 和 gem 的同窗會比較熟悉,一般咱們會把 gem 源切到國內的淘寶鏡像,這樣在安裝和更新一些包的時候比較快。nrm 同理,用來切換官方 npm 源和國內的 npm 源(如: cnpm),固然也能夠用來切換官方 npm 源和公司私有 npm 源。

全局安裝 nrm:

npm i nrm -g

查看當前 nrm 內置的幾個 npm 源的地址:

$ nrm ls

 

* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  eu ----- http://registry.npmjs.eu/
  au ----- http://registry.npmjs.org.au/
  sl ----- http://npm.strongloop.com/
  nj ----- https://registry.nodejitsu.com/

nrm test 測試各個源速度

nrm use cnpm 切換源

 

國內NPM安裝依賴速度慢問題

使用淘寶鏡像:http://npm.taobao.org/

方案一(推薦):使用cnpm代替npm,並指定其源爲淘寶鏡像

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

以後安裝均可使用cnpm代替npm ,如:

cnpm install gulp

 

方案二:在安裝時能夠手動指定從哪一個鏡像服務器獲取資源,使用阿里巴巴在國內的鏡像服務器

npm install -gd express --registry=http://registry.npm.taobao.org

只須要使用–registry參數指定鏡像服務器地址,爲了不每次安裝都須要--registry參數,可使用以下命令進行永久設置:

npm config set registry http://registry.npm.taobao.org

注:cnpm與npm仍是有區別的,使用npm安裝會附帶一些其餘信息,如使用 npm ls命令時

npm install 生成的package-lock.json是什麼文件?有什麼用?

package-lock.json is automatically generated for any operations where npm modifies either the node_modules tree, or package.json.
 It describes the exact tree that was generated, such that subsequent installs are able to generate identical trees, regardless
 of intermediate dependency updates.

大概意思是:package-lock.json是當 node_modules 或 package.json 發生變化時自動生成的文件。這個文件主要功能是肯定當前安裝的包的依賴,以便後續從新安裝的時候生成相同的依賴,而忽略項目開發過程當中有些依賴已經發生的更新。

 

錯誤記錄: 

1、使用npm安裝sudo npm install weex-toolkit -g報錯,使用chmod -R 777 /Users/linqiang/.nvm/versions/node/v10.8.0/lib/node_modules 無效...

後使用cnpm install weex-toolkit -g

npm ERR! path /Users/linqiang/.nvm/versions/node/v10.8.0/lib/node_modules/weex-toolkit/node_modules/acorn
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall access
npm ERR! enoent ENOENT: no such file or directory, access '/Users/linqiang/.nvm/versions/node/v10.8.0/lib/node_modules/weex-toolkit/node_modules/acorn'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/linqiang/.npm/_logs/2018-08-07T02_35_27_880Z-debug.log
相關文章
相關標籤/搜索