npm命令:找不到模块npm-cli.js

4

从今天开始我无法使用任何npm命令。

每次执行时都会得到以下信息:

internal/modules/cjs/loader.js:584
    throw err;
    ^

Error: Cannot find module 'C:\Users\Adrien\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
    at Function.Module._load (internal/modules/cjs/loader.js:508:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

我使用的是Windows 10操作系统,Node命令可用。我尝试卸载Node.js并更改环境变量中的路径,但没有任何改变......一切都很好,直到我开始在我的新React.js项目上工作并收到错误提示。
我在C:\Users\Adrien\AppData\Roaming\npm\node_modules中没有npm文件夹。谢谢你的帮助。
6个回答

13

好的,所以我通过@LOTUSMS 在这里回答自己的问题解决了我的问题。

总结如下:

  1. 从 "程序和功能" 中卸载 Node.js。

  2. 重新启动电脑。

  3. 删除每个 node 和 npm 文件夹:

    • C:\Program Files (x86)\Nodejs
    • C:\Program Files\Nodejs
    • C:\Users\{User}\AppData\Roaming\npm (或者 %appdata%\npm)
    • C:\Users\{User}\AppData\Roaming\npm-cache (或者 %appdata%\npm-cache)
    • C:\Users\{User}\.npmrc (并且可能会查找没有前缀 . 的文件)
  4. 移除环境变量中所有的 npm 或 node 引用。

  5. "如果它仍未被卸载,请在命令提示符处键入 where node,然后您将看到其所在位置--也要删除该位置(以及可能的父目录)"

  6. 重新启动电脑。

  7. 从头安装 Node.JS 和 NPM。


这是我唯一的方法,非常感谢! - benCat
我按照这里提到的所有步骤操作了,除此之外,我还删除了解决方案中的node_modules文件夹并重新运行了npm install,这样做起作用了。 - h_djebli
非常感谢,我尝试了很多解决方案,但最终只有这个有效。 - Tonmoy Nandy

2

过去的24小时里,我一直在尝试解决这个问题,现在终于好了:

进入设置 - 应用程序 - node.js。

在这里,有两个选项,“修改”或“卸载”,选择“修改”,然后按下下一个对话窗口上出现的“修复”按钮。这样做将重新安装完整的文件集。

进入PwerShell(Windows)或Bash(Mac),输入“npm -v”,您应该会得到一个正面的返回,即成功安装的npm版本号的显示。

我需要解决这个问题,作为安装Truffle以支持我的以太坊开发环境的先决条件。


不太确定为什么我需要在安装最新版本后修复它,但修复起作用了。谢谢。 - Tranzium

2

只需重新启动您的电脑,刷新代码编辑器并运行命令即可。


这对我也有效。它可能是在Win10更新后开始出现的。 - Arno van Oordt

0
一个快速的解决方案是npm install -D npm。虽然这不是一个很好的解决方案,因为你需要正确设置你的工作空间。但是,它可以工作,并且你可以在紧急情况下使用它。 ;)

0
如果你遇到同样的问题,这是我个人解决的方法: 只需打开配置面板窗口,就像你要卸载节点一样,但右键单击并选择修复。

0
问题是由于系统变量中节点路径错误导致的。请确保它指向正确的目录。

我尝试了以下路径:C:\Users\Adrien\AppData\Roaming\npm,C:\Program Files\nodejs\node_modules\npm,但仍然无法工作。不过NodeJS可以正常运行。 - renadr

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