仅在VS Code的集成终端中,npm create vite和 npx命令会无限期卡住
我在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 vite和npx 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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。