windows系統下npm公升級的正確姿勢以及原理

2021-08-28 06:22:55 字數 1802 閱讀 8856

網上關於npm公升級很多方法多種多樣,但是在windows系統下不是每種方法都會正確公升級。其中在windows系統下主要的公升級方法有以下三種:

windows下的模擬終端:推薦使用powershell,經本人測試git bash 和mintty 終端模擬器在執行npm命令的時候會有問題,這兩個終端執行的原理有興趣的可以研究一下。

1.通過公升級nodejs來公升級

2.npm install -g npm 方法(重點介紹)

在執行這個方法之前,先看一下我現在的node和npm版本:

$ node -v

v8.11.3$ npm -v5.6.0

然後執行npm install -g npm得到以下結果:

$ npm -v 

6.4.1

好像公升級成功了?! 我們來看一下是不是真的吧nodejs目錄的npm公升級成功了:

開啟nodejs目錄下對應的npm目錄(c:\program files\nodejs\node_modules\npm) 的package.json檔案:

還是5.6.0!!

從上圖得出,不管執行哪乙個路徑下的npm,得到的結果都是一樣的。 再深一步,我們先看一下nodejs目錄下的npm是怎麼執行的。開啟npm.cmd檔案,了解這個檔案到底執行了什麼。

npm命令執行原理:

我們在npm.cmd檔案加上一下log看一下相關的變數:

執行npm -v得到的結果:

重要的注釋(具體命令參考windows批處理(cmd/bat)程式設計詳解):

總結:執行npm命令實際上是執行了node $/npm-cli.js這個命令,關鍵是哪乙個npm-cli.js檔案:

3.npm公升級的正確姿勢應該是npm官方推薦的方法

參見how can i update npm on windows?

用管理員許可權開啟powershell,然後執行以下命令:

set-executionpolicy unrestricted -scope currentuser -forcenpm install -g npm-windows-upgradenpm-windows-upgrade
npm-windows-upgrade的執行過程:
1.  ensureexecutionpolicy:檢查使用者的powershell 執行許可權政策等2.  ensureinternet:檢查使用者的網路狀況3.  chooseversion: 讓使用者選擇乙個npm版本4.  choosepath: 找到正確的npm安裝目錄5.  upgrade:自動找到正公升級npm的正確目錄,保護和重新應用現有的配置,最終呼叫npm install -g npm
詳細過程有興趣的可以開啟原始檔看一下: 主要是以下三個檔案:

也就是說執行npm-windows-upgrade,它會幫助我們自動找到正公升級npm的正確目錄,保護和重新應用現有的配置,最終呼叫npm install -g npm

綜上,在windows系統下公升級npm的最佳方法是用npm-windows-upgrade來公升級,這樣可以保護並且重新應用到現有的配置,避免了潛在的問題。 通過以上實驗過程有以下知識點總結:

以上有不對的地方,希望大家指正。

參考:網易雲免費體驗館,0成本體驗20+款雲產品!

windows系統下npm公升級的正確姿勢以及原理

網上關於npm公升級很多方法多種多樣,但是在windows系統下不是每種方法都會正確公升級。其中在windows系統下主要的公升級方法有以下三種 windows下的模擬終端 推薦使用powershell,經本人測試git bash 和mintty 終端模擬器在執行npm命令的時候會有問題,這兩個終端...

Windows 下Npm和NodeJS公升級

前提電腦中已經安裝過nodejs,npm。現在需要進行公升級操作。1 檢視當前的npm和nodejs的版本 c users administrator node v v4.4.3 c users administrator npm version 2.15.1 2 公升級npm c users ad...

windows 解決公升級npm導致的錯誤

最近在學習nodejs,在windows瞎按照教程安裝完node,並成功寫了一段 測試可行。然而,在公升級npm的時候,由於誤操作,使用的linux下的語句 sudo npm install npm g來公升級的,因此導致錯誤。原以為終止操作後會回覆原來的版本,誰知一直報這個錯誤 資深小白一枚,遇到...