NPM:运行npm时未找到npm-cli.js

156

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


你安装了Node.js吗? - Mritunjay
2
抱歉,我忘记重新安装 Node 以修复这个错误,所以现在没有 node_modules 文件夹了。但在那之前,我也检查了 C:\Program Files\nodejs\node_modules\npm\bin\node_mod ules\,但是在其中并没有看到 npm 文件夹。 - user1192476
我有答案。8个小时后发布。谢谢。 - user1192476
2
好吧,我猜有人可能需要这个提示:点击node.js安装程序,选择“修复”,这样错误就解决了。 - vainquit
40个回答

6
除此之外,我还需要删除C:\Users\%USERNAME%\AppData\Roaming\npm文件夹。这样做有帮助。

1
在我的系统中,这就是全局包所在的位置;如果你从路径中删除它,那么你可能无法再运行 gulp 等程序。 - TrueWill

6

不要更改任何环境变量。

这是安装程序引起的问题,没有安装所有所需的文件。

我刚刚修复了Windows 7上的NODEJS设置,它运行得非常好。如果有什么事情不起作用,你可以重新安装。


5
升级到Node.js最新版本时,实际上会向您的系统变量添加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小时寻找解决方案。通过结合上述答案,我终于解决了问题。

5

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


4

在Windows 10上:

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

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

选择它,点击右侧的编辑按钮,然后将字段编辑为nodejs文件夹所在的路径。在我的情况下,我只是将其缩短为:

C:\Program Files\nodejs

然后,我关闭了所有的cmd或powershell终端,重新打开它们,npm就可以正常工作了。


3
在我的情况下,我使用的是 nvm-windows 1.1.6 版本,并使用 nvm install latest 命令更新了我的 nodejs 版本。尽管命令显示已经成功安装了 nodejs 和 npm,但当我尝试执行 npm install 命令时,出现以下错误信息:

Error: Cannot find module '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 文件夹里面没有任何内容,导致了这个错误。解决方法是从之前版本的 node_modules 文件夹中复制 npm 文件夹并粘贴到当前文件夹。然后使用 npm install npm@next -g 命令更新 npm,一切都恢复正常了。

3

这里提供的解决方法都没能帮到我,但是在我重新启动系统并再次运行npm install之后,它成功了。我猜之前运行的一个或多个进程占用了资源。

对于我来说,在Windows 10上简单地重新启动电脑就解决了问题!


也对我有用!错误可能是在Win10更新后开始的。 - Arno van Oordt

2
我知道这是一篇较旧的文章,但我写这篇翻译时,Node js的版本是12.13.1。人们通常会遇到这个问题,因为他们可能已经安装了之前的一个版本的Node js,它将以下内容添加到系统路径中。
C:\Program Files\nodejs\node_modules\npm\bin
然而,新版本需要添加以下内容:
C:\Program Files\nodejs
我的意思是说,您安装Nodejs的路径。默认路径为
C:\Program Files\nodejs
但是,如果您指定了不同的位置,则应将其指向该位置。

1

只需运行此命令:

npm i npm@latest -g

欢迎来到Stack Overflow!您可以详细说明一下它是如何工作的,以及如何回答这个问题吗? - anothernode
避免这种情况。您的节点版本应与npm版本保持同步,以获得更好的支持。即使npm在运行时会说另外一种情况。同时升级两个版本或将它们安装在一起。除非您只是在进行测试/检查。 - TamusJRoyce

1

对于仍在关注此帖子的人:

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

你不需要从官方网站使用nvm安装Node:你可以通过运行nvm install latest来安装最新版本的Node。 - Marco Lackovic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接