不久前自己作業的電腦上Node.js升級了,導致有一個依賴的專案無法正常啟動,于是到Google上搜了一把,找到stackoverflow上的一個解決辦法,基本意思是說當前的Node.js版本和gulp 3不兼容,要么將gulp升級到4,要么將Node.js降回到原來的版本,于是忽然想到之前在Ubuntu上安裝過NVM,Windows上應該也有對應的版本,于是在github上搜了一下,果然有專門針對Windows的版本,
下載安裝后,可以直接通過NVM命令在同一臺電腦上安裝多個不同版本的Node.js,而且可以隨意切換版本,
但是通過nvm use命令使用指定的Node.js版本之后,發現無法使用npm命令,
按照錯誤描述,應該是在對應的目錄中沒有找到npm-cli.js這個檔案,于是去NVM的安裝路徑下(通常為c:\users<your user>\AppData\Roaming\nvm)查看了一下,
NVM將所有安裝的Node.js的不同版本存放在這個目錄下,當使用nvm use命令時,會將對應版本的Node.js目錄中的內容拷貝到C:\Program Files\nodejs目錄中,從而達到切換不同Node.js版本的目的,但是這個目錄下的node_modules目錄是空的!怎么回事?
通過搜索,我找到在github上的nvm-windows的issues中也有人在問同樣的問題,基本意思就是說npm的倉庫已經從https://github.com/npm/npm移到https://github.com/npm/cli了,但是NVM v1.1.7并沒有做相應的調整,所以通過nvm install安裝Node.js時對應的npm實際上并沒有安裝成功,不過NVM此時并沒有報告任何錯誤,而是仍然顯示已安裝成功,
既然這是NVM自身的問題,那我們只能通過手動的方法來修復,從Node.js官網下載對應版本的壓縮包,將其中node_modules目錄下的內容拷貝到NVM目錄下對應Node.js安裝目錄中的node_modules中,如果NVM目錄下有多個Node.js版本,則需要手動拷貝每個Node.js版本中node_modules目錄的內容,
如https://nodejs.org/download/release/v11.15.0/是Node.js v11.15.0版本的下載地址,下載之后打開壓縮包,將其中的node_modules/npm目錄解壓并拷貝到NVM目錄下對應Node.js下的node_modules目錄中,
再次使用nvm use命令切換不同版本的Node.js,然后在命令列通過node -v查看當前Node.js版本,同時輸入npm看看該命令是否有效,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/195956.html
標籤:其他