解决nodejs使用yarn安装vue-cli提示'vue' 不是内部或外部命令
Nodejs使用yarn安装vue-cli提示'vue' 不是内部或外部命令
环境
软件 | 版本 |
---|---|
nodejs | v8.11.3 |
npm | 6.11.3 |
yarn | 1.17.3 |
vue-cli | 3.11.0 |
C:\Users\xxx>node -v
v8.11.3
C:\Users\xxx>npm -v
6.11.3
C:\Users\xxx>yarn -v
1.17.3
C:\Users\xxx>vue --version
3.11.0
官网下载最新的nodejs软件,为windows x64的zip版(node-v10.16.3-win-x64.zip)。直接解压,然后配置环境变量,添加对应目录到path变量中。设置了npm安装源为淘宝镜像,安装路径前缀为指定global目录。并且安装yarn。
因为是公司内网,使用代理上网。npm安装包特别慢。反而yarn要快点。所以使用yarn安装vue脚手架。
Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vue-cli -g 或 yarn global remove vue-cli 卸载它。
问题
虽然网络不好,经过多次尝试,最终还是安装完成了vue脚手架。但是在命令行输入vue --version
(3.X的命令),提示:'vue' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
解决
网上给的解决方案一般都是让将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也是这样的问题。