【问题标题】:`npm` busted - how to get past module-not-found, unexpected-token errors`npm` busted - 如何解决模块未找到、意外令牌错误
【发布时间】:2022-05-06 21:35:44
【问题描述】:

我已经使用 nvm-windows 安装了 Node 和 NPM。

当我尝试运行 npm install 时,我收到错误 Unexpected token '.',然后是运行完整日志的路径。

我检查了完整的日志,意外的令牌来自一个只包含文本的文件 ../workspace/libnpmfund

这在 Windows 上看起来是一个 Unix 符号链接。

我尝试删除文件并重新安装libnpmfund

npm i -g libnpmfund

但我从中得到的输出是Cannot find module 'libnpmfund'。

我尝试更改我使用的 node 和 npm 版本,但无济于事。

我该如何解决这个问题?我是怎么陷入这个烂摊子的?

(仅供参考,有一堆这样的符号链接,我都删除了它们,打算一个一个正确地重新安装它们。)

【问题讨论】:

  • 啊!我很高兴我不是唯一一个!我实际上使用的是 macOS,但我得到了和你一样的 Cannot find module 'libnpmfund' 错误......
  • 其实,为了修复它,我所做的基本上是删除node_modules下的所有内容,删除package.json和package-lock.json,然后从头开始。你猜怎么着——它奏效了! ???似乎当npm 严重困惑到它停止寻找自己的模块时(你不能安装任何东西,因为npm 被破坏了......),“最好”的选择是从一开始就开始...... .
  • @GwynethLlewelyn 如果您将其发布为答案,我会接受。我不得不卸载nvm-windows 并重新安装。没有什么比这更有效。
  • 接受挑战 ;-)

标签: node.js npm


【解决方案1】:

在 macOS 下(显然这也适用于 Windows),我所做的基本上是删除 node_modules 下的所有内容,删除 package.json 和 package-lock.json,然后从头开始。

似乎当npm 严重困惑到它停止寻找自己的模块时(你无法安装任何东西,因为npm 被破坏了......),“最好”的选择似乎是做所有事情从一开始。

这似乎不是一个真正的解决方案,但最终只是一种解决方法 - 一个快速修复可能对遇到相同问题并试图找出更明显解决方案的其他人有所帮助...

【讨论】:

    【解决方案2】:

    我在 windows 上使用 nvm 并安装了以下内容。

    节点 15.0.1 和 Npm 7.0.3

    由于某种原因,我将 npm 更新到 8.8.0,然后抱怨它需要 Node 16 或更高版本。

    我使用 nvm 安装了最新版本的 Node,即 Node 18.1.0,其中包括 Npm 8.8.0,我通过 nvm 切换到使用此版本。

    这是我遇到相同错误的地方,我无法更新 npm 或使用它安装任何东西。

    我设法通过将所有与 npm 相关的文件从我的 v15 文件夹 (...\AppData\Roaming\nvm\v15.0.1) 复制到 v18 文件夹 (...\AppData\Roaming\nvm \v18.1.0)。

    复制的文件: npm、npm.cmd、npx、npx.cmd 和 \node_modules\npm(整个 npm 文件夹)

    在那之后,我很高兴再去一次。

    我意识到并不是每个人都会有一个可用的 npm 工作副本,但我想关键是通过 nvm 替换与 node 一起安装的 npm 版本对我有用。

    显然 npm 已损坏,因此请尝试通过脚本安装它或下载 zip/tgz。

    【讨论】:

      猜你喜欢
      • 2020-07-05
      • 2022-07-22
      • 1970-01-01
      • 2021-10-02
      • 2020-11-27
      • 2020-11-20
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多