网上给的解决方案一般都是让将node安装的路径(global目录)添加到path下。查看指定的global目录中只有npm和yarn的执行文件,没有vue的执行文件,并且多了一个bin目录。
查看bin目录中有vue.cmd文件
尝试将该bin目录也加入到path下。然后再次执行vue --version
。这次提示:文件名、目录名或卷标语法不正确。
D:\Programs\node-v10.16.3-win-x64\node-global\bin>vue --version
文件名、目录名或卷标语法不正确。
这个错误就觉得是哪个参数有问题了,但是我没传文件夹路径呀!
随后打开该vue.cmd文件。就一行代码
@"%~dp0\C:\Users\xxx\AppData\Local\Yarn\Data\global\node_modules\.bin\vue.cmd" %*
原来yarn安装后的路径在C:\Users\xxx\AppData\Local\Yarn\Data\global\node_modules\.bin\vue.cmd
,这边只是封装一下调用。问题就出现在路径前面的%~dp0\
,我cmd命令会的不多,这个应该是指当前目录。但是这个路径明显不存在。
2个解决方法:
将
C:\Users\xxx\AppData\Local\Yarn\Data\global\node_modules\.bin
添加到path环境变量中将cmd文件中的
%~dp0\
去掉(同时bin目录要在环境变量中)
个人认为第一个比较直接,后面类似问题都能避免。第二种没遇到这个问题都要这么做,比如webpack也是这样的问题。