yarn代替npm yarn的优点与官网
Posted 安果移不动
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yarn代替npm yarn的优点与官网相关的知识,希望对你有一定的参考价值。
为什么用yarn代替npm
1、速度快
2、并行安装。速度要比npm快的多
3、安装版本统一
4、更简洁的输出
5、多注册来源处理 所有的依赖包不管他被不同的仓库间管理引用多少次。安装这个包时。只会从一个注册来源去装,要么是npm 要么是bowser 防止混乱不一致
6、更好的语义化
yarn 安装也很简单
npm install -g yarn
以下来自官方文档。
官方文档:
Yarn 中文文档
优点
离线模式
如果你以前安装过某个包,再次安装时可以在没有任何互联网连接的情况下进行。
确定性
不管安装顺序如何,相同的依赖关系将在每台机器上以相同的方式安装。
网络性能
Yarn 有效地对请求进行排队处理,避免发起的请求如瀑布般倾泻,以便最大限度地利用网络资源。
相同的软件包
从 npm 安装软件包并保持相同的包管理流程。
网络弹性
重试机制确保单个请求失败并不会导致整个安装失败。
扁平模式
将依赖包的不同版本归结为单个版本,以避免创建多个副本。
对于大多数用户来说,从 npm 迁移应该是一个相当简单的过程。Yarn 可以使用与package.json
npm相同的格式,并且可以从 npm 注册表安装任何包。
如果您想在现有的 npm 项目上尝试 Yarn,只需尝试运行:
yarn
这将node_modules
使用 Yarn 的解析算法来布置您的文件夹,该算法与node.js 模块解析算法兼容 。
如果出现错误,请检查现有问题或将其报告给 Yarn 问题跟踪器。
当您运行yarn
或 时yarn add <package>
,Yarn 将yarn.lock
在您的包的根目录中生成一个文件。您无需阅读或理解此文件 - 只需将其签入源代码管理即可。当其他人开始使用 Yarn 而不是 时npm
,该yarn.lock
文件将确保他们获得与您完全相同的依赖项。
在大多数情况下,运行yarn
或yarn add
第一次就可以了。在某些情况下,package.json
文件中的信息不够明确,无法消除依赖,Yarn 选择依赖的确定性方式会遇到依赖冲突。这在较大的项目中尤其可能发生,这些项目有时npm install
不起作用,开发人员经常node_modules
从头开始删除和重建。如果发生这种情况,请npm
在转换为 Yarn 之前尝试使用使依赖项的版本更加明确。
从 Yarn 1.7.0 开始,您可以导入由npm
Yarn生成的package-lock.json状态,使用yarn import
.
项目的其他开发人员可以继续使用npm
,因此您无需让项目中的每个人同时进行转换。使用的开发者yarn
都会得到完全相同的配置,使用的开发者npm
得到的配置可能略有不同,这是npm
.
稍后,如果您确定 Yarn 不适合您,您可以重新使用npm
而不进行任何特定更改。yarn.lock
如果项目中没有人再使用 Yarn,您可以删除旧文件,但这不是必需的。
如果您现在正在使用一个npm-shrinkwrap.json
文件,请注意您最终可能会得到一组不同的依赖项。Yarn 不支持 npm shrinkwrap 文件,因为它们没有足够的信息来支持 Yarn 更具确定性的算法。如果您使用的是shrinkwrap 文件,则可以更轻松地将参与该项目的每个人同时转换为使用Yarn。只需删除现有npm-shrinkwrap.json
文件并签入新创建的yarn.lock
文件即可。
CLI 命令比较
高于海平面 (v5) | 纱 |
---|---|
npm install | yarn add |
(不适用) | yarn add --flat |
(不适用) | yarn add --har |
npm install --no-package-lock | yarn add --no-lockfile |
(不适用) | yarn add --pure-lockfile |
npm install [package] --save | yarn add [package] |
npm install [package] --save-dev | yarn add [package] --dev |
(不适用) | yarn add [package] --peer |
npm install [package] --save-optional | yarn add [package] --optional |
npm install [package] --save-exact | yarn add [package] --exact |
(不适用) | yarn add [package] --tilde |
npm install [package] --global | yarn global add [package] |
npm update --global | yarn global upgrade |
npm rebuild | yarn add --force |
npm uninstall [package] | yarn remove [package] |
npm cache clean | yarn cache clean [package] |
rm -rf node_modules && npm install | yarn upgrade |
npm version major | yarn version --major |
npm version minor | yarn version --minor |
npm version patch | yarn version --patch |
以上是关于yarn代替npm yarn的优点与官网的主要内容,如果未能解决你的问题,请参考以下文章