为什么我使用 Yarn,而不是 npm
更新:本文基于 Yarn 1。Yarn 2已发布重大更新。我使用的是 Yarn 1.x。
在我每次启动 Gatsby 网站时都会做的事情的帖子评论区,有一条非常好的评论问我为什么把脚本从 npm 换到 Yarn。这个问题问得好,主题也不同,所以我写了这篇文章来分享我换脚本的几个原因。
从历史上看,npm CLI 是 Node.js 项目中管理依赖项和脚本的最常用工具。但是,也有其他 CLI 需要相同的 package.json 模式,例如Yarn或pnpm。
我更喜欢 Yarn 而不是 npm 的三个原因
在谈到我的工作流程的优势之前,我必须说,这部分归功于npm 公司。去年,他们换了一位新 CEO,并解雇了几名老员工,以阻止工会组织,这太令人恶心了。我不想详述整个故事,但这并不能让我对 JavaScript 生态系统的一个关键组成部分感到满意。
但是,我认为支持像 Yarn 这样的替代包管理器非常重要。Yarn 和 npm 默认使用 npm 的软件包注册中心,但也支持其他软件包注册中心。我认为这些问题可以通过更去中心化的软件包注册中心和像 Yarn 这样的多种命令行界面来解决。
无论如何,除此之外,我认为 Yarn 是一款非常好的软件,原因有几个。
运行脚本稍微容易一些
说实话,这正是我开始使用 Yarn 的初衷。如果 package.json 中有一个注册的脚本叫“build”,你就可以用 npm 像这样运行它:
npm run build
或者使用 Yarn:
yarn build
差别不大,但我认为节省的时间积少成多。越简单越好。
升级互动
你的项目被一堆过期的依赖项绑定了吗?我正好有 CLI 命令可以帮你实现。Yarn 的升级交互命令 (upgrade-interactive)是自动升级中最常用的命令。
要将一个、一些或所有依赖项升级到最新版本,只需输入:
yarn upgrade-interactive --latest
做出选择并观察其安装。
工作区
Monorepos 允许您在一个 git 仓库中开发多个包。如果这些包相关或相互依赖,这可以加快开发速度。根据需求,我喜欢使用Yarn 工作区或 Yarn 工作区与Lerna结合使用。
yarn 工作区是你的包中的一个文件夹,它有自己的 package.json。你可以使用工作区命令来运行脚本
纱线很好
自从切换到 Yarn 后,我在依赖解析和其他错误方面遇到的麻烦减少了。而且,它让我使用 Monorepos 也更加容易。
你换了吗?如果换了,有什么其他原因吗?不同意?评论区在下方👇,或者在推特上@我。
文章来源:https://dev.to/shelob9/why-i-use-yarn-not-npm-dkk