18

所以我的问题是这个。我有一个带有 package.json 的项目。当我在命令提示符(cmd.exe)中运行“npm install”时,一切都按预期安装。但是,当我在 PowerShell (powershell.exe) 中执行完全相同的操作时,我收到一个错误:“npm ERR!错误:ENOENT,打开 'c:\package.json'”,即使我在路径中运行了“npm install”该项目。它总是在 c: 中搜索 package.json,出于某种我无法理解的原因。

下面是 npm-debug.log(也写成 ic: 即使我的路径是 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 ]

我在任何地方都找不到解决此问题的方法。PATH 变量设置正确,因为 node 和 npm 本身都可以工作。

4

2 回答 2

19

对我来说,在 Powershell 中执行此操作要容易得多。

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

在 powershell 中运行“npm”,然后立即出现。

于 2015-05-06T21:05:03.750 回答
11

用于.npmrc显式设置前缀:

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

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

    prefix = "C:/Program Files/nodejs" 
    

参考

于 2014-04-24T02:27:15.210 回答