Windows上安裝NVM以後找不到NPM的解決辦法

  不久前本身工做的電腦上Node.js升級了,致使有一個依賴的項目沒法正常啓動,因而到Google上搜了一把,找到stackoverflow上的一個解決辦法。基本意思是說當前的Node.js版本和gulp 3不兼容,要麼將gulp升級到4,要麼將Node.js降回到原來的版本。因而突然想到以前在Ubuntu上安裝過NVM,Windows上應該也有對應的版本,因而在github上搜了一下,果真有專門針對Windows的版本node

  下載安裝後,能夠直接經過NVM命令在同一臺電腦上安裝多個不一樣版本的Node.js,並且能夠隨意切換版本。git

  可是經過nvm use命令使用指定的Node.js版本以後,發現沒法使用npm命令。github

  按照錯誤描述,應該是在對應的目錄中沒有找到npm-cli.js這個文件。因而去NVM的安裝路徑下(一般爲c:\users<your user>\AppData\Roaming\nvm)查看了一下。npm

  NVM將全部安裝的Node.js的不一樣版本存放在這個目錄下,當使用nvm use命令時,會將對應版本的Node.js目錄中的內容拷貝到C:\Program Files\nodejs目錄中,從而達到切換不一樣Node.js版本的目的。可是這個目錄下的node_modules目錄是空的!怎麼回事?gulp

  經過搜索,我找到在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此時並無報告任何錯誤,而是仍然顯示已安裝成功。windows

  既然這是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目錄中。blog

  再次使用nvm use命令切換不一樣版本的Node.js,而後在命令行經過node -v查看當前Node.js版本,同時輸入npm看看該命令是否有效。get

相關文章
相關標籤/搜索