问题描述:
因为 windows 自带的 terminal 不好用,所以自己就一直用的 wsl:ubuntu ,间接的使用 linux 命令行。最近,换了新电脑,遇到个问题,如下图

明明我已经全局安装了 create-react-app ,但是执行该命令的时候却告诉我找不到?!!
个人猜测是环境变量的问题,但是不知道怎么配置和修改,让人头大。
踩坑
之前安装的时候遇到过类似的问题,但是我使用 软链接 ln -s 的方式解决了,参考 wsl:ubuntu / linux 安装 nodejs ,npm和 cnpm,这次我也使用同样的方式操作,但是却不行,报错为:
ln: failed to create symbolic link '/usr/local/nodejs/bin/xxx': File exists
即已经有软链接了,说明,不是软链接问题。
此时,就进一步证明,我们 执行软链接 失败了,这是为什么呢?新安装的东西都在 nodejs/bin 目录下,而我也可以执行 node 命令,难道安装在 nodejs/bin 目录下的所有依赖都无法执行吗?
为了测试我的猜想,我安装了 git-cz ,测试
# git-cz
npm install -g git-cz
git-cz
# command not found
whereis git-cz
# git-cz:
此时,验证了我的猜想,nodejs/bin 目录下的所有依赖都无法执行
解决办法
由于自己对 linux 了解的不够深,在搜索资料和群友的助攻下,终于知道了几个关键点:
# $PATH 拿到的结果中发现,没有
> echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/e/software/cmder/vendor/conemu-maximus5/ConEmu/Scripts:/mnt/e/software/cmder/vendor/conemu-maximus5:/mnt/e/software/cmder/vendor/conemu-maximus5/ConEmu:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/e/software/Git/cmd:/mnt/e/software/nodejs/:/mnt/c/Users/jin/AppData/Local/Microsoft/WindowsApps:/mnt/e/software/Microsoft VS Code/bin:/mnt/c/Users/jin/AppData/Roaming/npm:/snap/bin
这里,需要给 nodejs/bin 目录添加到 $PATH 上
具体做法,在 .bashrc 中最后一行加上 nodejs/bin 的 PATH 即可
export PATH=$PATH:/usr/local/nodejs/bin
然后,保存 .bashrc 文件
source ~/.bashrc
此时验证:
create-react-app demo
git-cz
都成功了!!!
bug解决,完美~