由於 windows 自帶的 terminal 很差用,因此本身就一直用的 wsl:ubuntu ,間接的使用 linux 命令行。最近,換了新電腦,遇到個問題,以下圖node
明明我已經全局安裝了 create-react-app
,可是執行該命令的時候卻告訴我找不到?!!react
我的猜想是環境變量的問題,可是不知道怎麼配置和修改,讓人頭大。linux
以前安裝的時候遇到過相似的問題,可是我使用 軟連接 ln -s
的方式解決了,參考 wsl:ubuntu / linux 安裝 nodejs ,npm和 cnpm,此次我也使用一樣的方式操做,可是卻不行,報錯爲:git
ln: failed to create symbolic link '/usr/local/nodejs/bin/xxx': File exists
複製代碼
即已經有軟連接了,說明,不是軟連接問題。npm
此時,就進一步證實,咱們 執行軟連接 失敗了,這是爲何呢?新安裝的東西都在 nodejs/bin
目錄下,而我也能夠執行 node
命令,難道安裝在 nodejs/bin
目錄下的全部依賴都沒法執行嗎?ubuntu
爲了測試個人猜測,我安裝了 git-cz
,測試windows
# git-cz
npm install -g git-cz
git-cz
# command not found
whereis git-cz
# git-cz:
複製代碼
此時,驗證了個人猜測,nodejs/bin
目錄下的全部依賴都沒法執行bash
因爲本身對 linux 瞭解的不夠深,在搜索資料和羣友的助攻下,終於知道了幾個關鍵點:app
# $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解決,完美~