網上關於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 -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來公升級的,因此導致錯誤。原以為終止操作後會回覆原來的版本,誰知一直報這個錯誤 資深小白一枚,遇到...