解决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也是这样的问题。
原文地址:https://www.cnblogs.com/jimmyfan/p/11556777.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android view随触碰滑动效果
- TextView使用SpannableString设置复合文本 SpannableString实现TextView的链接效果
- FragmentTabHost使用方法详解
- Android编程实现仿优酷圆盘旋转菜单效果的方法详解【附demo源码下载】
- Android绘制圆形百分比加载圈效果
- Android自定义view实现动态柱状图
- Kubernetes集群高可用&备份还原概述 | 知识分享月第三期直播回顾
- SpringCloud2020 学习笔记(一)springboot和springcloud技术选型以及版本选择
- SpringCloud2020 学习笔记(二)父工程搭建
- SpringCloud2020 学习笔记(三) cloud-api-commons通用模块搭建
- SpringCloud2020 学习笔记(四) cloud-provider-payment8001支付模块
- SpringCloud2020 学习笔记(五)cloud-consumer-order80 消费者订单模块
- SpringCloud2020 学习笔记(六)如何开启idea中的Run DashBoard or Services
- SpringCloud2020 学习笔记(七)cloud-eureka-server7001 EurekaServer服务端安装
- SpringCloud2020 学习笔记(八)cloud-provider-payment8001支付模块入驻eurekaServer注册中心