だから私の問題はこれです。 package.jsonを使用したプロジェクトがあります。コマンドプロンプト(cmd.exe)で「npm install」を実行すると、すべて期待どおりにインストールされます。ただし、PowerShell(powershell.exe)でまったく同じことを実行すると、「npm ERR!エラー:ENOENT、open 'c:\ package.json'」というエラーが表示されます。プロジェクト。それは常にc:でpackage.jsonを検索します。なんらかの理由で理解できません。
以下はnpm-debug.logです(パスがc:\ code\myProjectであってもi c:とも書かれています)。
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 [email protected]
3 info using [email protected]
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 <[email protected]>
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 ]
この問題の解決策はどこにもありません。ノードとnpmの両方が機能するため、PATH変数は正しく設定されています。
.npmrc
を使用して、プレフィックスを明示的に設定します。
\Users\%USERNAME%\.npmrc
にアクセスします。たとえば、Powershellでは:
Notepad "\Users\$env:USERNAME\.npmrc"
プレフィックスを設定します。
prefix = "C:/Program Files/nodejs"
参照
私にとっては、Powershellでこれを行う方がはるかに簡単でした。
$env:Path += ";C:\Program Files\nodejs\"
Powershellで「npm」を実行し、すぐに思い付きました。