软件 | 版本 |
---|---|
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。vue
由于是公司内网,使用代理上网。npm安装包特别慢。反而yarn要快点。因此使用yarn安装vue脚手架。node
Vue CLI 的包名称由 vue-cli 改为了 @vue/cli。 若是你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你须要先经过 npm uninstall vue-cli -g 或 yarn global remove vue-cli 卸载它。webpack
虽然网络很差,通过屡次尝试,最终仍是安装完成了vue脚手架。可是在命令行输入vue --version
(3.X的命令),提示:'vue' 不是内部或外部命令,也不是可运行的程序 或批处理文件。web
网上给的解决方案通常都是让将node安装的路径(global目录)添加到path下。查看指定的global目录中只有npm和yarn的执行文件,没有vue的执行文件,而且多了一个bin目录。vue-cli
查看bin目录中有vue.cmd文件npm
尝试将该bin目录也加入到path下。而后再次执行vue --version
。此次提示:文件名、目录名或卷标语法不正确。windows
D:\Programs\node-v10.16.3-win-x64\node-global\bin>vue --version 文件名、目录名或卷标语法不正确。
这个错误就以为是哪一个参数有问题了,可是我没传文件夹路径呀!bash
随后打开该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也是这样的问题。