仅在VS Code的集成终端中,npm create vite和 npx命令会无限期卡住

后端开发 2026-07-08

我在macOS上遇到一个问题:npm/npx 命令只在VS Code的集成终端中卡住,而在原生macOS Terminal里同样的命令却能正常工作。

环境信息:

  • macOS
  • VS Code(最新版)
  • Node.js: v22.12.0
  • npm: 11.16.0

在VS Code的集成终端中,类似如下的命令:

npm create vite@latest .

或者

npx create-vite@latest test

甚至

npx cowsay hello

都永远不会完成。

当我运行:

npm create vite@latest test --verbose

时,最后一条输出是:

npm verbose cli /usr/local/bin/node /opt/homebrew/bin/npm
npm info using [email protected]
npm info using [email protected]
npm verbose title npm create vite@latest test
npm verbose argv "create" "vite@latest" "test" "--loglevel" "verbose"
npm verbose logfile logs-max:10 dir:/Users/\<username\>/.npm/\_logs/...
npm verbose shrinkwrap failed to load node_modules/.package-lock.json out of date, updated: node_modules
⠴

之后,它就一直卡在那儿。

然而,如果在原生macOS Terminal中运行同样的命令:

npm create vite@latest .

它会立即打开Vite框架选择菜单并正常工作。

另外:

npm ping

也能正常工作。

在VS Code中:

which node

返回:

/usr/local/bin/node

以及

which npm

返回:

/opt/homebrew/bin/npm

在VS Code里的 PATH 与macOS Terminal不同,因为它还包含了GitHub Copilot Chat shell集成条目。

我已经尝试过的办法:

  • 重新启动了VS Code
  • 打开一个新终端
  • 验证网络连接(npm ping 可用)
  • 确认该文件夹为空
  • 同时尝试了 npm create vitenpx create-vite

同样的命令在原生macOS Terminal中工作得很完美。

有没有人遇到VS Code的集成终端在所有 npx 命令上卡住,而原生Terminal一切正常的情况?

怎么解决?

解决方案

我觉得你的node和 npm来自两个不同的位置:“/usr/local/bin”和“/opt/homebrew/bin”,两者不匹配可能会引发一些问题。

用以下命令检查:which node && which npm
两者都应该指向同一个包管理器。

对我来说,最干净的解决办法是通过 "nvm" 安装Node,让它来管理一切,这样 "node" 和 "npm" 就来自同一个位置。

如果仍然不起作用
只需检查你在VS Code的 "settings.json",并添加这一行: "terminal.integrated.shellIntegration.enabled": false

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章