VSCode 任务运行时为什么找不到 npm 命令?
我在 VSCode 里配置了一个 tasks.json 来运行 npm run dev,但每次执行都报错说“npm: command not found”。明明在终端里直接敲这个命令是能跑的,是不是环境变量的问题?
我的 tasks.json 配置如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "dev",
"type": "shell",
"command": "npm run dev",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always"
}
}
]
}
可以试试这样改你的tasks.json,加上
options配置:注意要把
/usr/local/bin换成你实际的npm路径(可以用which npm查一下)。或者更简单的办法,直接把命令改成绝对路径:另外建议在VSCode里按F1,输入"Open Settings (JSON)",确认下terminal.integrated.env.linux/osx/windows的配置是否包含PATH变量。
这种问题特别常见,有时候重启VSCode也能莫名其妙解决...程序员的世界就是这么玄学(摊手)
解决办法很简单,直接告诉 VSCode npm 的绝对路径在哪就行。
先在你的终端里敲一下
which npm(如果是 Windows 就用where npm),把输出的路径记下来。然后修改你的 tasks.json,把 command 改成那个绝对路径,顺便把参数拆分一下,这样更规范,也不容易出错。
注意把
/usr/local/bin/npm换成你刚才查到的真实路径。这样改完绝对能跑。如果你不想写死路径,那就在 options 里把 PATH 环境变量传进去,不过那个配置起来比较麻烦,写死路径最省心,毕竟后端开发最讨厌为了个 IDE 配置折腾半天。