VSCode(Linux)终端出现“command not found”错误:全局安装的gulp-cli无法运行的问题求助
看起来你已经折腾了不少办法来解决这个问题,我之前也碰到过VSCode终端和系统终端环境不一致的情况,给你几个实用的排查和解决思路:
对比系统终端和VSCode终端的PATH环境变量
系统终端能找到gulp但VSCode找不到,大概率是两者的PATH不一样。先在系统终端里执行echo $PATH,把输出记下来;再到VSCode的bash终端里跑同样的命令,对比两处的路径差异。全局安装的gulp-cli一般会放在~/.npm-global/bin或者/usr/local/bin这类目录下,看看这个路径有没有出现在VSCode的PATH列表里——如果没有,这就是问题根源。手动给VSCode终端添加缺失的PATH
要是确认VSCode的PATH里少了gulp-cli所在的目录,可以通过VSCode设置来补全。按下Ctrl+,打开设置面板,搜索terminal.integrated.env.linux,点击「编辑 in settings.json」,然后把缺失的路径加进去:"terminal.integrated.env.linux": { "PATH": "${env:PATH}:/home/你的用户名/.npm-global/bin" }记得把路径换成你实际找到的gulp-cli安装目录,保存设置后重启VSCode终端再测试。
检查VSCode的启动身份
如果你之前是用sudo启动的VSCode,它会继承root用户的环境变量,而不是你普通用户的,这时候全局安装的包自然找不到。试试关闭VSCode,用普通用户身份重新打开(别加sudo),再运行gulp watch看看。重新安装gulp-cli并确认安装路径
可以重新全局安装一次gulp-cli,加上--verbose参数能看到详细的安装路径:npm install -g gulp-cli --verbose安装完成后,在系统终端里跑
which gulp拿到准确路径,要么确认这个路径在VSCode的PATH里,要么尝试把它软链接到/usr/bin(之前没成功可能是路径没找对)。用nvm统一管理Node版本(可选方案)
如果上面的方法都没解决,试试用nvm来管理Node和npm。nvm会把全局包的路径统一到用户目录下,VSCode终端能更好地识别这些路径,安装完nvm后重新装Node和gulp-cli,一般能解决环境变量不一致的问题。
备注:内容来源于stack exchange,提问作者Some one else

