2015-04-29 108 views
16

我已經安裝了全球通過命令線兩條NPM包"download""enigmavirtualbox"全球NPM包,但找不到命令

npm install -g downloadnpm install -g engimavirtualbox

我試圖用它們在批處理文件捆綁來自我的節點項目的一個.exe文件。對於這兩個,命令npm list -g <packagename>產生相應的版本輸出,與當前工作目錄無關。

但是,在我的批處理腳本中找不到命令「download」和「enigmavirtualbox」。

運行npm root -g產生C:\Users\<username>\AppData\Roaming\npm\node_modules並在該文件夾內查看我可以看到兩個軟件包的文件夾都存在。

我曾嘗試:

  • 更改npm root描述here
  • 卸載並重新安裝包
  • 添加ENV。變量NODE_PATH指向C:\Users\<username>\AppData\Roaming\npm\node_modules
  • C:\Users\<username>\AppData\Roaming\npm\node_modules添加到PATH env。變量

相同的設置在我的第二臺計算機上運行(都運行Win7 64位)。我的節點安裝有問題,或者我做錯了什麼?

+0

https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows – Lonely

回答

31

可執行文件和.cmd文件最終在C:\Users\<username>\AppData\Roaming\npm(最後減去node_modules),因此將該路徑添加到PATH env。變量修正了這個問題。

+11

的作品,儘管也許使用通配符會更好:'%USERPROFILE%\ AppData \ Roaming \ npm'。該行必須位於PATH env變量中的任何npm,node或nodejs路徑之前,以便npm可以適當地找到您的全局程序包。 – gugol

+0

我創建了自己的節點package.json,並從那裏運行'npm install -g'(我沒有發佈它,因爲我需要它保持私有)。這會將包數據和依賴關係置於'%appdata%\ npm \ node_modules'中,但是您所說的沒有'.cmd'文件。 – deed02392

2

如果上述方法不工作,然後使用這個命令明確設置的路徑

npm config set prefix c:/Users/<username>/AppData/Roaming/npm