解决nodejs使用yarn安装vue-cli提示'vue' 不是内部或外部命令

时间:2019-09-20
本文章向大家介绍解决nodejs使用yarn安装vue-cli提示'vue' 不是内部或外部命令,主要包括解决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个解决方法:

  1. C:\Users\xxx\AppData\Local\Yarn\Data\global\node_modules\.bin添加到path环境变量中

  2. 将cmd文件中的%~dp0\去掉(同时bin目录要在环境变量中)

个人认为第一个比较直接,后面类似问题都能避免。第二种没遇到这个问题都要这么做,比如webpack也是这样的问题。

原文地址:https://www.cnblogs.com/jimmyfan/p/11556777.html