【问题标题】:VS Code Node.js debug terminal fails with 'Error: Cannot find module'VS Code Node.js 调试终端失败并显示“错误:找不到模块”
【发布时间】:2023-02-08 16:49:33
【问题描述】:

最近,我无法在 VS Code 中为我的 Node.js 项目运行 JavaScript 调试终端。我有许多不同的项目都建立在同一个基础上,并且尝试在调试终端中为其中任何一个运行 npm start 都会给我以下错误:

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

Error: Cannot find module '"c:/Users/malcolm.mccrimmon/AppData/Local/Programs/Microsoft'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at Module._preloadModules (internal/modules/cjs/loader.js:901:12)
    at preloadModules (internal/bootstrap/node.js:601:7)
    at startup (internal/bootstrap/node.js:273:9)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
Waiting for the debugger to disconnect...

从任何其他非调试终端运行 npm start 都可以正常工作。搜索这个问题只发现了最近移动的调试项目的一些问题,或者没有正确安装依赖项(例如 vscode Debugger Cannot find moduleinternal/modules/cjs/loader.js:582 throw err)。

我正在使用 VS Code 的本地(用户)安装,C:\Users\malcolm.mccrimmon\AppData\Local\Programs\Microsoft VS Code 是安装目录,所以看起来可能是文件路径中的空格没有被正确转义的问题?我不知道如何解决它。

我想这可能是最近更新 VS Code 时引入的错误,但我尝试一直降级到 2021 年 1 月版本(v 1.53)并且仍然能够重现它。完全卸载并重新安装也未能解决问题。在这一点上,我不确定还能尝试什么。

下面是我在其中重现此问题的项目中较简单的 package.json 文件之一:

{
  "name": "metrics-graphql",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "nodemon -L index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "node": "10.16"
  },
  "dependencies": {
    "apollo-boost": "^0.4.9",
    "apollo-cache-inmemory": "^1.6.6",
    "apollo-client": "^2.6.10",
    "apollo-link-http": "^1.5.17",
    "apollo-server": "^2.25.3",
    "apollo-server-express": "^2.25.3",
    "axios": "^0.19.2",
    "dataloader": "^2.0.0",
    "dotenv": "^8.6.0",
    "elasticsearch": "^16.7.2",
    "graphql": "^14.7.0",
    "graphql-iso-date": "^3.6.1",
    "graphql-redis-subscriptions": "^2.4.2",
    "graphql-resolvers": "^0.4.2",
    "graphql-subscriptions": "^1.2.1",
    "https-proxy-agent": "^5.0.0",
    "ioredis": "^4.28.2",
    "moment": "^2.29.1",
    "mongoose": "^5.13.13",
    "node-fetch": "^2.6.6"
  }
}

【问题讨论】:

  • 您是否尝试禁用任何可能影响 VScode 的防病毒软件或防火墙?
  • @MostafaFakhraei 我在公司笔记本电脑上工作,所以我无法更改这些设置。但为什么它会突然停止工作?我之前已经多次使用调试器,没有任何问题。
  • 是的,这个词突然使我对其他事情产生怀疑。根据您所做的操作,例如卸载/重新安装、降级/升级等,唯一的可能性是与可能影响 VScode 的任何防火墙或防病毒软件发生冲突。看看thisthis comment
  • @MostafaFakhraei ...aaand 它突然又开始工作了。自 10 月以来,防病毒日志中没有任何内容。如果再次发生,我将调查潜在的防火墙问题。谢谢你!
  • 如果您有重现此内容所需的 launch.json 或 tasks.json 文件,请分享它。

标签: node.js visual-studio-code vscode-debugger


【解决方案1】:

这听起来与https://github.com/microsoft/vscode-js-debug/issues/543 中报告的问题相同。

要启动,甚至还有人与您的错误消息非常相似:https://github.com/microsoft/vscode-js-debug/issues/543#issuecomment-656499137

One of the maintainers there found the following steps that could reproduce the problem(虽然这并不一定意味着这些是仅有的可以重现它的步骤):

验证步骤:

  1. 使用 Node 10。nvm 或开发容器可以很好地工作
  2. 具有链接的启动配置,其中 runtimeExecutable 设置为 npm、yarn 或 pnpm
  3. 验证您是否可以成功运行和调试脚本

    That issue was purported to be fixed for version 1.47.2 of VS Code,但该线程中的其他人报告说之后仍然遇到它。

    Several users there have had success getting rid of the error by restarting VS Code

    Another user reported that the issue went away after they reinstalled NVM/Node and NPM

    我建议您尝试这些解决方法。

    为了您的学习,我通过谷歌搜索 "Error: Cannot find module" "/AppData/Local/Programs/Microsoft" internal 找到了这个。


    我还注意到在你的 package.json 中,你有 "devDependencies": {"node": "10.16"},,这可能意味着你需要关注 that same maintainer's instructions in a separate but slightly related GitHub issue (#911)

    看起来您在 ./node_modules/.bin/node 中安装了 Node.js 的副本——并且由于您使用 npm 运行,我们回退并在此处查看 Node。

    我建议:

    • 从您的 node_modules 卸载 Node.js 的副本,如果它实际上不是您想要运行的节点版本
    • 配置 npm 以使用 node_modules 中存在的 Node.js 副本(例如,也在本地安装 npm 并调用它)
    • 手动设置 nodeVersionHint: 10 以指示您正在使用旧版本的 Node.js 运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-30
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    相关资源
    最近更新 更多