今天在使用Win10子系統的過程中發現一個問題:如果主/子系統同時設置環境變量,那么子系統會優先選擇主系統的環境變量!打個比方,我主系統中已有Node.js環境變量,那么我在子系統所設置的環境則無效,運行npm會報如下錯誤
圖1
很顯然,系統運行的是windows下的node,我們執行
echo $PATH
圖2
結合圖1可以看出子系統下的環境變量包含了主系統環境變量,這就是導致圖1錯誤的原因(linux執行windows的程序,報錯是必然的)。直接把圖2的環境變量刪掉也行。。但是我不知道會不會影響到主系統,懶得折騰了,所以我想到用命令別名,執行以下命令
vim ~/.bashrc
然后在bashrc文件的末尾追加圖3中的內容(注意,“=”后面的路徑是你node安裝的路徑),這樣就能避免相同名稱導致的錯誤了
圖3
現在我們執行
cnpm -v
圖4
這就沒問題啦