通常、npmを使用してライブラリをインストールできますが、今日yeomanをインストールするときにこのエラーが発生しました。根本的な原因を理解するのを助けてください。
D:\Works\phonegap\ionic\todo>npm install -g yo
module.js:340
throw err;
^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
私はフォルダを見ました:
C:\ Program Files\nodejs\node_modules\npm\bin \
ただし、説明されているエラーのようにnode_modulesフォルダーは表示されません。
また、npm-cli.jsを見つけて、実際にC:\Program Files\nodejs\node_modules\npm\bin\
にあることを確認します
この問題は、システム変数内のノードのパスが間違っていることが原因であることがわかりました。現在、パスは
(いつ変更したか本当にわかりません)
C:\ Program Files\nodejs\node_modules\npm\bin
だから私は
C:\ Program Files\nodejs
そしてそれは魅力のように機能します。
これをコマンドラインで実行する必要があります。
SET PATH=C:\Program Files\Nodejs;%PATH%
パスにC:\Program Files\nodejs
とC:\Program Files\nodejs\node_modules\npm\bin
がある場合にも、この問題が発生する可能性があります。パスから後者を削除します
NodeJSのインストールを修復したところ、うまくいきました!
Control Panel\All Control Panel Items\Programs and Features
に移動-> NodeJS
を見つけて、オプションrepairを選択して修復します。お役に立てれば。
これは質問と同じケースではありませんが、同様の問題に直面している人にとって役立つかもしれません。 Windowsでは、何らかのCI /自動化ツールからnpm
コマンドを呼び出すと、エラーが発生する場合があります。
Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js'
ここでSOME_PATH
はProgram Files/...
ではなく、代わりに何らかのプロジェクトディレクトリです。したがって、npmはProgram Files/nodejs
で検索する代わりに、プロジェクトのルートディレクトリ内でnpm-cli.jsを検索しようとします。
理由はnpm.cmdスクリプトです:
:: Created by npm, please don't edit manually.
@ECHO OFF
SETLOCAL
SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
SET "NODE_EXE=node"
)
SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)
"%NODE_EXE%" "%NPM_CLI_JS%" %*
このスクリプトは%~dp0
を使用してnpm-cli.jsを検索しますが、一部の自動化ツールは、%~dp0
がローカルプロジェクトディレクトリを指すように作業ディレクトリを設定し、スクリプトが正しく動作しない場合があります。
1つの可能な解決策は、これからnpmコールを変更することです
npm.cmd install
これに
cmd.exe /c npm.cmd install
インストールされたノードパスからnpm
という名前のディレクトリをコピーします(私の場合、npmディレクトリはC:\Program Files\nodejs\node_modules
で利用できました)。
C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules
に移動し、コピーしたnpm
ディレクトリをそこに貼り付けます。
この方法は、同じエラーが発生したときに機能しました。 。 。
他の答えはどれも私にとってはうまくいきませんでした。
ここに私が書いているものがあります(Windowsのgit bashシェルで):
PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman
Macの場合:
同じエラーが発生したときに、Maven com.github.eirslett Frontend Pluginからこれを実行していました。
最終的に私はする必要がありました:
ここからインストーラーをダウンロードしてNode.jsをインストールします。 http://nodejs.org/
すべてのnode/
およびnode_modules/
フォルダーを、mavenビルド構造内から削除します。
環境変数を変更しないでください
問題の原因はインストーラーであり、必要なファイルをすべてインストールしませんでした。
Windows 7でNODEJSセットアップを修復したところ、非常にうまく機能しました。何かが機能しない場合に備えて、再インストールできる場合があります。
Nvmをインストールしたときにノード8.5で同じ問題が発生しました。以下の解決策が私のために働いた
$ nvm uninstall 8.5
8.5.0
Uninstalling node v8.5.0...Error removing node v8.5.0
Manually remove C:\Users\Omkar\AppData\Roaming\nvm\v8.5.0.
$ nvm install 8.5
8.5.0
Downloading node.js version 8.5.0 (64-bit)...
Complete
Creating C:\Users\Omkar\AppData\Roaming\nvm\temp
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...
Installation complete. If you want to use this version, type
nvm use 8.5.0
Omkar@VAST-0137 MINGW64 /d/code
これは、nvmを使用する前にノード8.5が正しくインストールされなかったために機能しました。 「npm\bin\npm-cli.js」フォルダーとファイルが以前にnode_modules内に作成されなかったことが原因だと考えました。
GoogleChrome/puppeteer をインストールした後、これが起こり始めました。解決策はnpmを再インストールすることでした:
$ npm i npm@latest
または
$ npm install npm@latest
上記に加えて、C:\Users\%USERNAME%\AppData\Roaming\npm
も削除する必要がありました。これは助けた。
実際には、nodejsの最新バージョンにアップグレードするときにシステムの変数に追加された2つのパスがあります。
1。 C:\ Program Files\nodejs
2。 C:\ Program Files\nodejs\node_modules\npm\bin
Windows 7/8/8.1ユーザーの場合、環境変数Windows 10スマートGUIはありません。
とにかく、あなたがしなければならないのは、"C:\Program Files\nodejs\node_modules\npm\bin"
を検索して削除することだけです。
また、環境変数から"C:\Users\%USERNAME%\AppData\Roaming\npm"
を削除します。インターネットでソリューションを探して10時間を無駄にしたため、この回答を投稿しています。上記の答えを組み合わせることで、私は最終的に問題を解決します。
npm install -g npm @ [version]は問題を修正しました
Windowsでも同じ問題が発生しました。 Nodeを修復しましたが、Windowsでコマンドを再起動すると正常に機能しました。
このコマンドを実行するだけです:
npm i npm@latest -g
ここでの解決策はどれも私にとってはうまくいきませんでしたが、システムを再起動し、npm install
を再度実行した後、うまくいきました。実行する前に実行した1つ以上のプロセスを推測します。
Windows 10での単純なPCの再起動は私にとって魔法でした!
node_modules内にnpmフォルダーを手動で作成し、修復オプションでインストーラーを再実行します。不足しているファイルをコピーします。
解決策は、これを行う前にC:\ Program Files\nodejs\node_modules\npm\binからnpm npm.cmd npx npx.cmdを削除することでした。 C:\ Program Files\nodejs\npmを実行して、これが1つの方法であるため、同じ問題が発生しているかどうかを確認します。
私にとっては、上記のどれも機能しませんでしたが、「npm install ...」を実行するたびにnpmコマンドが機能しなくなることに気付きました。したがって、インストールするたびに、NodeJSインストールプログラムを実行し、「修復」を選択する必要があります。実際の解決策を見つけるまで:)