npm&nvm&nrm&yarn常用的命令和常見的手法

npm

檢視全域性依賴列表

npm install -g ——depth 0

檢視npm配置列表

npm config list

npm 升級

npm install npm@latest -g 或 npm i -g npm

@ 符號後面可以新增你想更新到的版本號

升級依賴

1。 按照自身規則升級

npm update webpack

執行後,會按照package。json裡指定的版本升級規則升級(*,~,^,@)

2。 升級到特定版本

npm update webpack@2。3。3

此方式不會自動更新package。json檔案的內容,需要手動更新

清除npm快取

檢視: npm config get cache

驗證快取資料的有效性和完整性: npm cache verify

刪除快取目錄下的所有資料: npm cache clean ——force

淘寶映象源與cnpm

單次使用

npm install ——registry=https://registry。npm。taobao。org

永久使用

設定成全域性的下載映象站點,這樣每次install的時候就不用加——registry,預設會從淘寶映象下載。

方法一

1。 開啟。npmrc檔案(nodejs\node_modules\npm\npmrc,沒有的話可以使用git命令列 建一個( touch 。npmrc),用cmd命令建會報錯)

2。 增加 registry =https://registry。npm。taobao。org 即可。

方法二

命令列設定:

npm config set registry https://registry。npm。taobao。org

檢測是否成功

npm config get registry

還原npm倉庫地址

npm config set registry https://registry。npmjs。org/

cnpm和淘寶映象一步到位

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

檢測cnpm版本 cnpm -v ,如果安裝成功可以看到cnpm的基本資訊 以後安裝外掛只需要使用 cnpm intall 即可

npm與cnpm區別

cnpm安裝模組的時候會在node_modules資料夾生成二個資料夾,一個以下劃線 _開頭以及版本號組成的名字,一個正常名字的模組,資料夾名字雖然不一樣,但裡面檔案是一樣的。比如:

執行 cnpm install lodash ,會在 node_modules 資料夾下生成兩個資料夾: _lodash@4。17。11@lodash 和 lodash

先執行了 cnpm install lodash ,然後再執行 npm install lodash ,npm安裝的lodash會替換掉 cnpm安裝的lodash包(包括以下劃線開頭那個包),資料夾會只剩一個npm先安裝的lodash包。再 次 npm uninstall lodash 或者 cnpm uninstall lodash ,都會刪除lodash包,此時外掛包就變成空 檔案夾了。

先執行了 cnpm install lodash ,然後再執行 npm uninstall lodash 後,此時會報錯

npm ERR! code EINVALIDPACKAGENAMEnpm ERR! Invalid package name “_lodash@4。17。11@lodash”: name cannot start with an underscore;

name can only contain URL-friendly characters

但是使用cnpm uninstall lodash後,不會報錯,此時會刪掉cnpm安裝的兩個包中其中一個即非下劃線 (正常名字)的包。剩餘的那個包是可以正常透過滑鼠點選開啟的。然後在檔案中require會報錯,提示 沒有這個包。

先執行了cnpm install lodash,然後手動刪除cnpm安裝的兩個包中其中一個即下劃線(非正常名字) 的包,剩餘的那個包,發現無法透過滑鼠點選打開了。然後在檔案中require會報錯,提示沒有這個包。

所以,cnpm安裝的的2個模組,兩者應該存在引用關係,正常名字模組是非正常名字模組的索引,兩者 都必須存在才可以使用。但是npm安裝下來就不存在這種情況了,因為只有一個正常名字模組。

發現,儘管使用npm改成淘寶倉庫,發現安裝速度還是遠遠比cnpm慢(當模組比較多的時候)。可能 應該和cnpm安裝的檔案結構有關係吧。

nrm 管理源

全域性安裝nrm: npm install -g nrm

檢視可選的源: nrm ls

切換源: nrm use 例如: nrm use taobao

增加源: nrm add ,其中reigstry為源名,url為源的路徑 刪除源: nrm del

測試速度: nrm test ,透過 nrm test 測試相應源的響應時間

舉個栗子

增加: nrm add registry http://registry。npm。frp。trmap。cn/

切換: nrm use taobao

測試: nrm test npm

使用不同源安裝依賴有兩種方式

1。 使用nrm來回切換源進行安裝

2。 不使用nrm切換,設定安裝 npm i -g pkg ——registry url

nvm

nvm和n都是node版本管理工具

為了解決node各種版本存在不相容現象

nvm是讓你在同一臺機器上安裝和切換不同版本的node的工具

命令

nvm ls-remote :列出所有可以安裝的node版本號

nvm install v10。4。0 :安裝指定版本號的node

nvm use v10。3。0 :切換node的版本,這個是全域性的

nvm current :當前node版本

nvm ls :列出所有已經安裝的node版本

yarn

安裝yarnnpm install -g yarn安裝成功後,檢視版本號:yarn ——version建立資料夾 yarnmd yarn進入yarn資料夾cd yarn初始化專案yarn init // 同npm init,執行輸入資訊後,會生成package。json檔案yarn的配置項:yarn config list // 顯示所有配置項yarn config get //顯示某配置項yarn config delete //刪除某配置項yarn config set [-g|——global] //設定配置項安裝包:yarn install //安裝package。json裡所有包,並將包及它的所有依賴項儲存yarn。lock yarn install ——flat //安裝一個包的單一版本yarn install ——force //強制重新下載所有包yarn install ——production //只安裝dependencies裡的包yarn install ——no-lockfile //不讀取或生成yarn。lockyarn install ——pure-lockfile //不生成yarn。lock新增包(會更新package。json和yarn。lock):yarn add [package] // 在當前的專案中新增一個依賴包,會自動更新到package。json和 yarn。lock檔案中yarn add [package]@[version] // 安裝指定版本,這裡指的是主要版本,如果需要精確到小版本, 使用-E引數yarn add [package]@[tag] // 安裝某個tag(比如beta,next或者latest)//不指定依賴型別預設安裝到dependencies裡,你也可以指定依賴型別: yarn add ——dev/-D // 加到 devDependenciesyarn add ——peer/-P // 加到 peerDependenciesyarn add ——optional/-O // 加到 optionalDependencies//預設安裝包的主要版本里的最新版本,下面兩個命令可以指定版本:yarn add ——exact/-E // 安裝包的精確版本。例如yarn add foo@1。2。3會接受1。9。1版,但是 yarn add foo@1。2。3 ——exact只會接受1。2。3版yarn add ——tilde/-T // 安裝包的次要版本里的最新版。例如yarn add foo@1。2。3 ——tilde會 接受1。2。9,但不接受1。3。0釋出包yarn publish移除一個包yarn remove :移除一個包,會自動更新package。json和yarn。lock 更新一個依賴yarn upgrade 用於更新包到基於規範範圍的最新版本執行指令碼yarn run 用來執行在 package。json 中 scripts 屬性下定義的指令碼 顯示某個包的資訊yarn info 可以用來檢視某個模組的最新版本資訊快取yarn cacheyarn cache list # 列出已快取的每個包 yarn cache dir # 返回 全域性快取位置 yarn cache clean # 清除快取

yarn升級

不能透過npm install yarn -g的方法獲得最新的yarn

方案一

透過msi安裝升級yarn透過msi安裝的yarn並不會覆蓋透過npm安裝的yarn,兩者同時存在。解除安裝 的話,也是分開解除安裝的。

方案二

npm加版本號安裝我們已經知道了yarn的最新版的版本號,就可以直接指定版本號進行安裝。 npm install yarn@1。3。2 -g

檢視npm上的最新版本: npm view yarn version n

pm加latest安裝: npm install yarn@latest -g

yarn的解除安裝

理論上來說,npm/cnpm/yarn安裝的包都是不同的包,透過msi安裝的包也是不同的包,需要使用對應的方式進行解除安裝。所以解除安裝的時候,可能會比較混亂。

在window環境下,也存在著個 where 命令(但是沒有 which )。這個命令,可以清晰的指示你,當前 的yarn的路徑,進而選擇對應的刪除方式。

舉個栗子

yarn安裝taro依賴包後,執行taro卻不是內部命令。

解決:

1。 首先終端執行命令 yarn global bin ,查詢yarn安裝目錄

2。 把安裝目錄新增到系統環境變數中,重新開啟終端即可