在gitee上面找了一个别人开源的后台管理系统的案例;clone到本地以后发现它用的包管理工具是yarn,用npm下载yarn的时候出现了这样一个问题:npm命令运行完成,yarn -v报:“无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称” 这样一个错误,已解决;记录一下,仅供参考
yarn
yarn的概念
Yarn是facebook发布的一款取代npm的包管理工具
yarn的特点
速度超快。
Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。
超级安全。
在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。
超级可靠。
使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。
yarn对比npm的优点
1yarn
是异步安装,npm
是同步安装,安装完这一个依赖才能安装下一个
2yarn
安装速度比npm
快
3yarn
可以锁定安装版本,生成yarn.lock
,不会出现奇奇怪怪的问题,npm5
也解决了这个问题,生成的是package-lock.json
4yarn
可以实现离线缓存,npm
不可以
yarn的安装
win+R运行cmd,输入命令:npm install -g yarn 下载yarn install可以简写为i
yarn的基本命令
- yarn add xxx:安装具体的某个包
- yarn serve:运行项目
- yarn build:编译项目
- yarn -v:yarn版本
- yarn init:初始化项目
遇到的问题
在nvm下用npm下载yarn报错:无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
可能产生问题的原因:1,没有安装yarn 2,没有配置环境变量 3,安装路径的问题
解决问题的几个方法
1,重新安装
通过命令 npm uninstall -g yarn 删除当前yarn,重新执行命令下载
2,更改 Window Powershell 的执行策略
下载成功以后输入 yarn -v仍然显示报错
输入命令 :get-ExecutionPolicy ,返回显示为Restricted ,表示不可用;显示RemoteSigned则不是这个问题;
返回显示为Restricted,以管理员身份运行Window Powershell
输入命令:set-ExecutionPolicy RemoteSigned 直接回车
再输入命令:get-ExecutionPolicy 检查返回RemoteSigned 如下图:
配置环境变量
在nvm下找到yarn文件夹,复制它的路径
右键我的电脑--属性--环境变量---在 pass路径中新建 粘贴yarn路径确定就可以了:如下图:
4,修改yarn的文件位置
在npm 下载yarn时没有报错,说明下载成功了,但是yarn命令无效,说明系统找不到yarn的文件位置,没有nvm的情况下,yarn的文件位置会在:C:\Users\用户名\AppData\Roaming\npm下面,可以直接把yarn文件夹剪切到npm同级目录下就可以了
5,使用npx运行yarn命令
如果无法将Yarn添加到系统的环境变量中,我们可以使用npm自带的npx命令来运行yarn命令。npx是npm5.2版本及以上自带的命令,用于执行当前项目中安装的模块。我们可以使用以下命令来运行:npx yarn install 系统会自动查找当前项目中安装的Yarn模块,并执行对应的命令
可能是安装的时候步骤有误导致后期安装yarn的时候目录存在问题,虽然可以像这样手动解决但原因还未定位到,可以卸载掉nvm和之前装的node、npm后重新安装nvm
参考文章: