当前位置:网站首页>yarn detailed introductory tutorial
yarn detailed introductory tutorial
2022-08-04 17:03:00 【cat boss bean】
文章目录
简介
Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具.
As we can know from the official documentation,它的目的是解决这些团队使用 npm 面临的少数问题,即:
- 安装的时候无法保证速度/一致性
- 安全问题,因为 npm Allows running code when installed
Yarn 同样是一个从 npm 注册源获取模块的新的 CLI 客户端.There will be no changes to the way you register —— You can also obtain and publish packages as normal.
优点
1. 速度快
主要还是 yarn 运行速度得到了显著的提升,整个安装时间也变得更少.
速度快主要来自以下两个方面:
- 并行安装:无论 npm 还是 yarn 在执行包的安装时,都会执行一系列任务.npm 是按照队列执行每个 package,也就是说必须要等到当前 package 安装完成之后,才能继续后面的安装.而 yarn 是并行执行所有任务,提高了性能.
- 离线模式:如果之前已经安装过一个软件包,用 yarn 再次安装时之间从缓存中获取,就不用像 npm 那样再从网络下载了.
2. 一致性
为了防止拉取到不同的版本,Yarn 有一个锁定文件 lock file
记录了被确切安装上的模块的版本号.
每次只要新增了一个模块,Yarn 就会创建(或更新)yarn.lock
这个文件.
这么做就保证了,每一次拉取同一个项目依赖时,使用的都是一样的模块版本.
安装
1. 官方下载安装
2. npm 安装
最简单的方法是运行:
npm install -g yarn
现在的 yarn 安装页面是这么说的:
注意:通常情况下不建议通过npm进行安装.npm安装是非确定性的,程序包没有签名,并且npm除了做了基本的SHA1哈希之外不执行任何完整性检查,这给安装系统程序带来了安全风险.
基于这些原因,It is strongly recommended that you install via the installation method that is most suitable for your operating systemyarn.
If it continues to develop at this rate,如果yarnTo declare their ownregistry,Let developers slowly weed outnpm的话,We wouldn't be surprised at all.
After the installation is successful, you can view the version:
yarn --version
初始化
Enter the project directory and execute yarn init
yarn init
会在根目录下生成一个 package.json
,与 npm Similar without explanation,如下
添加依赖
1. 添加包
yarn add [pkg-name]
,会自动安装最新版本,会覆盖指定版本号
example add jquery :
yarn add jquery
node_modules
下会生成 jquery 文件夹,里面便是 yarn generated dependencies
2. 一次性添加多个包
yarn add [pkg-name1] [pkg-name2]
example add bootstrap 和 zepto:
yarn add bootstrap zepto
成功后如下
3. 添加指定版本的包
yarn add [pkg-name]@ver
example add 2.1.4版本的jquery:
yarn add [email protected]
成功后如下
4. 将包更新到指定版本
yarn upgrade [pkg-name]@ver
举例将 jquery从2.1.4更新到3.0.0版本:
yarn upgrade [email protected]
成功后如下
5. 将包更新到最新版本
yarn upgrade --latest [pkg-name]
举例将3.0.0版本的 jquery更新到最新版本:
yarn upgrade --latest jquery
成功后如下
6. 删除包
yarn remove [pkg-name]
举例删除 jquery:
yarn remove jquery
成功后如下
7. 一次删除多个包
yarn remove [pkg-name1] [pkg-name2]
举例删除 bootstrap 和 zepto:
yarn remove bootstrap zepto
yarn.lock Automatically lock the installation package version
Npm 有一个名为 shrinkwrap 的特性,Its purpose is to lock down package dependencies when used in production.shrinkwrap The challenge is that every developer has to run it manually npm shrinkwrap 生成 npm-shrinkwrap.json 文件.
使用 Yarn,则截然不同.在安装过程中,会自动生成一个 yarn.lock 文件,yarn.lock All your installations, big and small, will be logged.有点类似 PHP developers are familiar with composer.lock.yarn.lock The exact version of the installed package and all dependencies are locked,As long as you don't delete yarn.lock 文件,再次运行 yarn install 时,All dependent packages will be fetched according to the version number recorded in it.有了这个文件,You can be sure that every member of the project team has the exact package version installed,Deployment can be reproduced easily,And no surprises bug.你可以把 yarn.lock Submit to this library,This way others check out the code and run yarn install 时,It can be ensured that the dependencies installed by everyone are completely consistent.
such as the one installed abovebootstrap、jquery和zepto会在yarn.lock中有记录,如下图:
这里新建一个 yarn_demo2
的文件夹,并将 package.json
和 yarn.lock
文件从 yarn_demo
文件夹中复制过来,如下图:
进入yarn_demo2
文件夹 执行 yarn
命令,即可一键下载 yarn.lock
Dependencies documented in ,相当方便快捷,值得你拥有~
yarn 和 npm 命令对比
其他
至于bower与npm,Its usage is also similar,But the advice given by the boss is:
end ~
边栏推荐
猜你喜欢
Unity Apple登录接入
开一个羽毛球馆大概需要多少钱?大约15万左右可以搞定!
数字化金融企业的产品体系长啥样?
JVM内存和垃圾回收-08.方法区
Hubei Mobile HG680-LV_S905L3B_wire brush firmware package
谷歌开发者社区推荐:《Jetpack Compose 从入门到实战》新书上架,带你踏上 Compose 开发之旅~
智慧场馆的无人值守怎么做?
通关剑指 Offer——剑指 Offer II 010. 和为 k 的子数组
【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)
【LeetCode每日一题】——540.有序数组中的单一元素
随机推荐
小程序+自定义插件的混合模式
机器学习(十):朴素贝叶斯
小满nestjs(第一章 介绍nestjs)
图扑软件与华为云共同构建新型智慧工厂
JVM内存和垃圾回收-08.方法区
移动海信IP102H_905L3-B_线刷固件包
MySQL学习笔记-4.数据更新时的性能问题
理财产品买入后份额是固定不变的吗?
R语言使用yardstick包的gain_curve函数评估多分类(Multiclass)模型的性能、查看模型在多分类每个分类上的增益(gain)曲线(gain curve)
WPF 修改 ItemContainerStyle 鼠标移动到未选中项效果和选中项背景
九联_UNT400G_S905L2_(联通)_线刷固件包
Catering Supply Chain Management System
SAP 电商云 Spartacus UI 页面布局的设计原理
Mobile BesTV_R3300-L_S905L_8189_wire brush firmware package
容器化 | 在 NFS 备份恢复 RadonDB MySQL 集群数据
【小程序】实现发动态功能
【LeetCode每日一题】——540.有序数组中的单一元素
浙江移动咪咕MGV2000-K4_ZJ_S905l2_7661_线刷固件包
How to convert an int attribute into a string in the json format returned by the Go language gin framework?
HCIP WPN 实验