npm install在Windows PowerShell中不起作用

所以我的问题是这个。 我有一个package.json项目。 当我在命令提示符下(cmd.exe)运行“npm install”时,所有的事情都按照预期安装。 然而,当我做PowerShell(powershell.exe)完全相同的东西时,我得到一个错误:“npm ERR!错误:ENOENT,打开'c:\ package.json'”,即使我运行“npm install”该项目。 它总是在c中searchpackage.json:出于某种原因我无法理解。

下面是npm-debug.log(也是写成ic:即使我的path是c:\ code \ myProject):

0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Files\\nodejs\\\\node.exe', 1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli 'install' ] 2 info using npm@1.3.11 3 info using node@v0.10.21 4 verbose node symlink C:\Program Files\nodejs\\node.exe 5 error install Couldn't read dependencies 6 error Error: ENOENT, open 'c:\package.json' 7 error If you need help, you may report this log at: 7 error <http://github.com/isaacs/npm/issues> 7 error or email it to: 7 error <npm-@googlegroups.com> 8 error System Windows_NT 6.2.9200 9 error command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" 10 error cwd c:\ 11 error node -v v0.10.21 12 error npm -v 1.3.11 13 error path c:\package.json 14 error code ENOENT 15 error errno 34 16 verbose exit [ 34, true ] 

我无法find解决这个问题的任何地方。 由于节点和npm本身都工作,所以PATHvariables设置正确。

使用.npmrc显式设置前缀:

  • 转到\Users\%USERNAME%\.npmrc 。 例如,在Powershell中:

     Notepad "\Users\$env:USERNAME\.npmrc" 
  • 设置前缀:

     prefix = "C:/Program Files/nodejs" 

参考

  • 是否有手动安装node.js for Windows 7?
  • 使用PowerShell从快捷方式打开程序
  • nodeJS模块:从全局文件夹加载
  • npm config自述文件
  • npm文件夹:前缀configuration
  • nodejs源:legacy-npm-self-install.js
  • 正斜杠用法

对我来说,在Powershell中做这件事更容易。

 $env:Path += ";C:\Program Files\nodejs\" 

在PowerShell中运行“npm”,马上跑出来。