【问题标题】:VS Code Integrated Terminal Throws `Cannot find module` & `nvm is not compatible with the npm config "prefix" option`VS Code 集成终端抛出`Cannot find module` & `nvm is not compatible with the npm config "prefix" option`
【发布时间】:2020-07-15 19:58:44
【问题描述】:

看起来这是一个相当普遍的问题,但我已经尝试了所有能找到的方法,但似乎仍然无法解决。如果我在 VS Code 之外加载我的终端,它可以正常工作,但是集成终端在启动时会不断抛出这个:

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

Error: Cannot find module '"/Users/me/Library/Application'
    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)
nvm is not compatible with the npm config "prefix" option: currently set to ""
Run `nvm use --delete-prefix v10.16.3 --silent` to unset it.

我完成了here 的步骤,其中解释了如何删除其他不需要的 npm/npx 实例。奇怪的是,现在which npmnvm 初始化脚本之前打印/Users/me/.nvm/versions/node/v10.16.3/bin/npm,这使得nvm 似乎已正确加载,但.zshrc 文件正在再次运行,这可能导致错误。

在错误消息 ('"/Users/me/Library/Application') 的文件路径中似乎有一个额外的 ",但我在我的 nvm 初始化脚本中没有看到任何类似的拼写错误,所以看起来可能是也是初始化脚本被调用两次的结果?

另外需要注意的是,nodenpm 在集成终端中找不到,但它们在 VS Code 之外可以正常工作。

我还尝试了其他各种方法,例如在我的 VS Code 设置中进行设置:"terminal.integrated.shellArgs.osx": [],手动和使用自制软件卸载和重新安装 node/nvm。任何帮助将不胜感激!

编辑:我尝试安装 VS Code Insiders 并复制我的设置和集成终端加载没有任何问题。所以看起来这可能会在未来的版本中得到修复。我会在 VS Code 中提供更新后发布更新,看看这个问题是否会消失。

【问题讨论】:

  • 对我来说同样的问题。你并不孤单。
  • 自从最新更新以来,这对我来说也是一个问题,我还没有找到任何解决办法。
  • 遇到了同样的问题。我已经实施了几个小时在网上找到的解决方案,但没有成功。

标签: node.js npm visual-studio-code


【解决方案1】:

我遇到了这个问题,我只能通过在 VSCode 设置中禁用自动附加调试来解决我的问题。希望我将来可以重新启用它,因为您提到最新的内部版本没有问题。顺便说一下,我正在使用 Bash shell,但希望这也能对您有所帮助。

"debug.node.autoAttach": "disabled",

【讨论】:

  • 做到了!非常感谢!
  • 我检查了 Insiders 版本,尽管 autoAttach 已打开,但集成终端仍在工作,因此它似乎在即将到来的版本中得到修复。
  • 很高兴知道,感谢您回来告诉我们
  • 同样的问题
  • 就是这样!我将我的设置设置为“关闭”,在这种情况下,这显然与“禁用”的含义不同。我花了半天时间才意识到 A)npm 只是在 VSC 中失败,B)它在 VSC 更新后立即开始失败。感谢您的修复!
【解决方案2】:

我尝试了接受的解决方案,但它对我不起作用。

我必须使用 nvm 卸载我的版本,然后使用 nvm 并安装。 之后我就没有错误了。

【讨论】:

    【解决方案3】:

    我最近在尝试调试 Next.JS 节点项目时遇到了这个问题。建议的答案对我不起作用,因为调试器连接到我尝试运行的节点实例时出现问题。我做了两件事来解决这个问题。

    我使用nvm 来管理节点版本。我的默认值为node v10,但我正在使用node v16 运行我的Next.js 项目。

    我去了 Next.JS 网站查找他们的 documentation for Debugging 并使用允许客户端、服务器端或全栈调试的建议配置在 .vscode 文件夹中设置 launch.config。请注意,客户端调试需要Chrome DevTools

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Next.js: debug server-side",
          "type": "node-terminal",
          "request": "launch",
          "command": "npm run dev"
        },
        {
          "name": "Next.js: debug client-side",
          "type": "pwa-chrome",
          "request": "launch",
          "url": "http://localhost:3000"
        },
        {
          "name": "Next.js: debug full stack",
          "type": "node-terminal",
          "request": "launch",
          "command": "npm run dev",
          "console": "integratedTerminal",
          "serverReadyAction": {
            "pattern": "started server on .+, url: (https?://.+)",
            "uriFormat": "%s",
            "action": "debugWithChrome"
          }
        }
      ]
    }
    

    不幸的是,调试器仍然无法附加。当调试器仍在运行时,我运行node -v 以查看调试器使用默认节点版本(node v10)启动了一个新的终端窗口。一旦我将调试器终端中的版本更改为node v16,然后我运行yarn dev,我就能够附加调试器了。

    对我来说,我总是会仔细检查或为我正在工作的目录设置默认节点版本,以防止这种情况再次发生。

    【讨论】:

      【解决方案4】:

      MacOS 版本:10.15.6

      1. $cd ~
      2. $ touch .zshrc
      3. $ vi .zshrc
      export NODE_PATH="/usr/local/lib/node_modules"
      
      1. $ source .zshrc

      【讨论】:

      • 不幸的是,这并不能解决问题。不过感谢您的回复! ?
      【解决方案5】:

      尝试在 Visual Studio Code 终端中运行此命令:

      nvm use --delete-prefix v12.20.0 --silent
      

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 2016-04-23
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-14
      • 2020-12-31
      相关资源
      最近更新 更多