今天在使用Win10子系统的过程中发现一个问题:如果主/子系统同时设置环境变量,那么子系统会优先选择主系统的环境变量!打个比方,我主系统中已有Node.js环境变量,那么我在子系统所设置的环境则无效,运行npm会报如下错误
图1
很显然,系统运行的是windows下的node,我们执行
echo $PATH
图2
结合图1可以看出子系统下的环境变量包含了主系统环境变量,这就是导致图1错误的原因(linux执行windows的程序,报错是必然的)。直接把图2的环境变量删掉也行。。但是我不知道会不会影响到主系统,懒得折腾了,所以我想到用命令别名,执行以下命令
vim ~/.bashrc
然后在bashrc文件的末尾追加图3中的内容(注意,“=”后面的路径是你node安装的路径),这样就能避免相同名称导致的错误了
图3
现在我们执行
cnpm -v
图4
这就没问题啦