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


89

通常,我可以使用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\


您何时安装节点?
Mritunjay 2014年

1
抱歉,我忘记重新安装节点来修复此错误,因此现在没有node_modules文件夹。但是在此之前,我还检查了C:\ Program Files \ nodejs \ node_modules \ npm \ bin \ node_mod ules \,但是没有看到npm文件夹。
user1192476 2014年

我对此有答案。将在8小时后发布。谢谢。
user1192476 2014年

Answers:


103

事实证明,问题出在系统变量中节点的路径错误。该路径当前指向

(我真的不知道何时修改它)

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

所以我改成

C:\Program Files\nodejs

它就像一个魅力。


16
有同样的问题。从不更改路径,所以我猜想这在升级Node时一定已经发生。
Nils Magne Lunde 2014年

我认为对于我来说,当我安装Electron时,问题就开始发生了:(
Charles Walker

4
您在哪里改变了?什么文件?
CodeToad

1
环境变量。
Crozeta '18

在最新版本上,升级后,您可能会在环境变量上看到两条路径,并且旧路径(C:\ Users \ YOUR_USER \ AppData \ Roaming \ npm)优先于新路径(C:\ Program Files \ nodejs )。删除前者可以为我解决问题。
Shahroq

41

您需要在命令行中运行它。

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

Windows中的bash外壳
Prathap Kudupu,

升级节点版本时遇到此问题。您的解决方案非常适合我。我不必删除任何node_modules文件夹
AllJs

很高兴它提供了帮助
Prathap Kudupu,

在尝试使用npm(npm -i npm)更新npm后,我不得不进一步提高此路径的优先级。
科里·阿利克斯

26

如果在您的路径中有C:\Program Files\nodejs和,则可能还会遇到此问题C:\Program Files\nodejs\node_modules\npm\bin。从路径中删除后者


4
路径在哪里?
CodeToad

17

复制npm从已安装的节点路径命名的目录(在本例中,npm目录在中可用C:\Program Files\nodejs\node_modules)。

导航到C:\Users\%USERNAME%\AppData\Roaming\npm\node_modules并粘贴复制的npm目录。

当我遇到相同的错误时,此方法对我有用。。。


3
谢谢,在升级搞乱了我的NPM安装,修复和重新安装后没有解决问题后,此方法非常有用。
Slbox

16

我刚刚修复了NodeJS安装,并且对我有用!

转到Control Panel\All Control Panel Items\Programs and Features->查找NodeJS并选择修复选项以对其进行修复。希望这可以帮助。


1
这个工作对我来说,却是所谓的“应用程序和功能”在Windows 10
PeonProgrammer

在我的情况下,node_modules中没有npm文件夹,我所做的只是执行命令npm install express,对其进行了修复。
Lalit Fauzdar

14

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

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

这里SOME_PATH不是,Program Files/...而是一些项目目录。因此,npm尝试在项目根目录中查找npm-cli.js,而不是在中搜索它Program Files/nodejs

原因是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指向本地项目目录的方式设置工作目录,因此该脚本无法正常工作。

一种可能的解决方案是从此更改npm调用

npm.cmd install

对此

cmd.exe /c npm.cmd install

如果您需要设置WorkingDirectory运行在一个特定的目录安装命令这并不能解决问题
丹尼尔·费舍尔lennybacon

对我有用的是事后使用npm命令运行更改目录:“ cmd.exe” / c cd / d“ T:\ TfsAgent_work \ 1 \ s \ src \ WebHost \” &&“ C:\ Program Files \ nodejs \ npm.cmd”安装
Daniel Fisher lennybacon

7

没有其他答案对我有用。

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

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


5

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


1
在我的系统上,这是全局软件包所在的位置;如果将其从路径中删除,则可能不再能够运行
gulp

5

与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。我发现是因为之前没有在node_modules内部创建“ npm \ bin \ npm-cli.js”文件夹和文件。


我的路看起来还不错;卸载/重新安装为我解决了该问题。
马斯拉

即使切换到较新版本,旧节点也会出现一些奇怪的问题。因此,我卸载了旧节点,然后再次重新安装了新节点。通过这种方式,我用cli解决了这个问题:)谢谢
Andrej Gaspar

5

不要更改任何环境变量

导致该问题的是安装程序,未安装所有必需的文件。

我刚刚修复了Windows 7上的NODEJS设置,并且效果很好。也许您可以重新安装,以防万一某些东西不起作用。


4

升级到最新版本的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个小时在Internet上搜索解决方案。通过结合以上答案,我终于解决了这个问题。



2

这里的解决方案都不适合我,但是在我重新启动系统并npm install再次执行后,它仍然有效。我猜想我会坚持执行一个或多个进程。

Windows 10上的简单PC重新启动对我来说神奇!


也为我工作!在Win10更新后可能开始出现错误
Arno van Oordt

2

我在Windows上遇到了同样的问题。我刚刚修复了Node,在Windows上重新启动命令后,它工作正常。


1

只需运行以下命令:

npm i npm@latest -g

欢迎使用Stack Overflow!您能否详细说明这是什么以及它如何回答这个问题?
anothernode '18


1

在Windows 10上:

  1. 按Windows键,键入编辑系统环境变量,然后输入。
  2. 点击环境变量...
  3. 在以标题“环境变量”打开的窗口的下半部分,您将看到一个名为“系统变量”的表,该表有两列,第一列为标题的变量。
  4. 找到带有变量Path的行,然后单击它。
  5. 单击编辑,这将打开一个标题为“编辑环境变量”的窗口。
  6. 如果你在这里找到

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

选择它,然后单击右侧的“编辑”按钮,然后将该字段编辑为具有nodejs文件夹的路径,在我的情况下,它只是将其缩短为:

C:\ Program档案\ nodejs

然后,我关闭了所有cmd或powershell终端,再次打开它们,npm正在工作。


1

我知道这是一篇较旧的文章,但是在撰写本文时,Node js的版本为12.13.1。人们通常会遇到这种情况,因为他们可能已经安装了Node js的早期版本,从而在系统路径中添加了以下内容。

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

但是,较新的版本需要添加以下内容:

C:\ Program档案\ nodejs

我的意思是说您安装Nodejs的路径。默认是

C:\ Program档案\ nodejs

但是,如果您指定了其他位置,则应指向该位置。


0

在VS2017中为我提供的解决方案(在工具|选项下)

在工具下|  选项...

我将路径更改为:C:\ Program Files \ nodejs


0

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


0

在node_modules内部手动创建一个npm文件夹,然后使用修复选项重新运行安装程序。它复制丢失的文件。


0

就我而言,我使用的是nvm-windows 1.1.6,并且使用来更新了nodejs版本nvm install latest,最终告诉我已安装了nodejs和npm,但是当我尝试这样做时npm install,我收到了

错误:找不到模块“ C:\ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js”

在检查nvm-windows结构时,我发现它C:\Program Files\nodejs%APPDATA%\nvm\NODE_VERSION符号链接到,(在我的情况下,NODE_VERSION为v9.7.1)里面node_modules没有任何文件夹,导致此错误。解决方案是npm从以前版本的node_modules文件夹之一复制该文件夹并粘贴。然后我用更新了npm,npm install npm@next -g一切又重新开始工作。


0

对我而言,上述方法均无效,我只是注意到,每次执行“ npm install ...”时,任何npm命令都将停止工作。因此,每次安装时,我都必须运行NodeJS安装程序并选择“修复”。直到找到真正的解决方案为止:)


张贴解决方案是件好事,我们也对此表示赞赏。.但是,如果您逻辑地解释而不是说它神奇地起作用,那会更好:)
Aousaf rashid

0

将NPM更新到最新版本对我有用:

npm install npm@latest -g

0

更改环境路径变量C:\ Program Files \ nodejs \ node_modules \ npm \ bin并打开命令终端,然后打开npm -v和


0

对于仍在使用此线程的家伙:

  • 从官方站点安装节点(检查npm和节点版本以检查是否正确安装,请在新终端/ cmd中检查);
  • 立即安装nvm,并在提示是否使用nvm管理当前节点时,单击“是”;
  • 打开新的cmd并运行nvm。

您无需使用nvm从官方站点安装Node:您可以使用nvm running安装最新版本的Node nvm install latest
Marco Lackovic

0

我今天在Linux服务器中遇到了完全相同的问题。原因很简单,因为我之后没有做make install,而是make尝试直接调用generate npm。因此,PATH和所有内容都一团糟。

所以对我来说,解决办法就是做make installmake并运行npm.node/bin/npm

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.