运行npm时找不到npm-cli.js

通常我可以使用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文件夹看作所描述的错误。

我也试着findnpm-cli.js ,看看它是在C:\Program Files\nodejs\node_modules\npm\bin\

事实certificate,这个问题是由于系统variables中的节点path错误造成的。 目前的path指向(我真的不知道当我修改它)

C:\ Program Files \ nodejs \ node_modules \ npm \ bin

所以我改变了

C:\ Program Files \ nodejs

它就像一个魅力。

如果您的path中有C:\Program Files\nodejsC:\Program Files\nodejs\node_modules\npm\bin您可能也会遇到此问题。 从path中删除后者

你需要在命令行中运行这个。

 SET PATH=C:\Program Files\Nodejs;%PATH% 

在Mac上:

当我遇到同样的错误时,我正在使用Maven com.github.eirslett Frontend Plugin。

最终我不得不:

通过安装程序在这里下载Node.js: http : //nodejs.org/

从我的maven构build结构中删除所有node/node_modules/文件夹。

除了上面,我还必须删除C:\Users\%USERNAME%\AppData\Roaming\npm 。 这帮助。

这与问题中的情况不一样,但可能对面临类似问题的人有帮助。 在Windows上,如果您从某个CI /自动化工具调用npm命令,则可能会遇到以下错误:

 Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js' 

其中SOME_PATH不是Program Files/...而是一些项目目录。 所以npm试图在项目根目录下findnpm-cli.js,而不是在Program Files/nodejs中search它。

原因是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指向本地项目目录的方式来设置工作目录,所以脚本工作不正确。

一个可能的解决scheme可能是从这个npm调用

 npm.cmd install 

对此

 cmd.exe /c npm.cmd install 

没有其他答案为我工作。

这是我写的(在Windows上的git bash shell):

 PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman 

在升级到nodejs最新版本时,实际上有2条path被添加到您的系统variables中。
1. C:\ Program Files \ nodejs
2. C:\ Program Files \ nodejs \ node_modules \ npm \ bin
对于Windows 7/8 / 8.1用户,他们将不具有环境variablesWindows 10智能GUI。
无论如何,你所要做的就是search"C:\Program Files\nodejs\node_modules\npm\bin"并将其删除。
另外,从环境variables中删除"C:\Users\%USERNAME%\AppData\Roaming\npm" 。 我张贴这个答案,因为我浪费了我在互联网上search解决scheme的10个小时。 通过综合以上的答案,我终于可以解决这个问题。

我在VS2017中的解决scheme(在工具|选项…下)

在工具|下选项...

我将path更改为: C:\ Program Files \ nodejs

我在Windows7上安装node9.0.0时遇到了这个问题,最后解决方法是从C:\ Program Files \ nodejs \ node_modules \ npm \ bin中删除npm npm.cmd npx npx.cmd,然后执行此操作运行C:\ Program Files \ nodejs \ npm,这是一种方法,所以看看你是否有同样的问题,我有。