Yarn 4.0发布:性能提升、 硬化模式、提供更多命令和功能

原文开头:

就是今天!经过一年多的工作,我们的团队很高兴终于在4.x发布线的第一个版本上贴上了一个花哨的"稳定"标签!为了庆祝,让我们一起参观一下主要的变化;如果你想找一个更详细的列表,看看更新日志Changelog | Yarn

原文:Release: Yarn 4.0 🪄⚗️


进入省流模式


省流模式

破坏性更新

  • 需要Node.js 18+
  • 使用 yarn init 创建的新项目将不再默认启用零安装 zero-installs
  • 使用 yarn init 创建的新项目将使用Corepack而不是 yarnPath
  • 所有官方插件( typescriptinteractive-tools ,.)现在默认包括在内
  • yarn workspaces foreach 命令的语法略有变化

Hardened Mode 硬化模式

硬化模式能够进一步保护你的项目免受常见攻击,在此模式下运行时,Yarn将执行两个额外的验证:

  • 它将验证存储在lockfile中的resolutions是否与可以解析的resolutions范围一致。
  • 它将验证存储在lockfile中的包元数据与远程注册表元数据是否一致。

硬化模式通过切换 enableHardenedMode 启用,但当Yarn检测到它在公共存储库上的GitHub pull请求中运行时,它也会自动启用。这可以通过在yarnrc文件中显式关闭 enableHardenedMode 来禁用。

在硬化模式约束下运行的安装比通常要慢得多,因为它们需要执行许多网络请求。不建议默认开启,如果在特定的CI作业中需要它,开启方式通过环境变量:

ini 复制代码
export YARN_ENABLE_HARDENED_MODE=1

JavaScript 约束

Prolog约束从Yarn 4开始被弃用,并且它们已经被一个闪亮的新的基于JavaScript的引擎所取代,具有可选的TypeScript支持!

TypeScript集成,交互式工具

Yarn的一些功能以前是作为插件提供的,需要与主要包分开管理。尽管这有助于构建插件生态系统,但对用户来说管理起来很有挑战。我们实施了一些功能来简化管理(当你自动更新Yarn时自动升级插件),你现在可以在没有插件的情况下使用 yarn upgrade-interactiveyarn stage ,如果你在项目中配置了TypeScript,Yarn现在将在你使用 yarn addyarn remove 更新依赖项时根据需要自动 添加和删除 @types 包。

Yarn仍然支持第三方插件(将来也会继续支持)

改进的用户界面

yarn4改进了UI,yarn install 现在会告诉添加的包及其总重量。你也会注意到它不会打印太多关于对等依赖的警告,因为Yarn4现在只尝试打印可操作情况的警告:

另一个例子是 yarn config 命令,它支持一个新的树显示,现在还接受任意数量的设置作为位置参数:

性能表现

安装速度明显快于3.6。在官方示例中(约提高3倍),通过新的包元数据缓存,显著提高了重复安装的性。这些变化使得Yarn在大多数情况下与pnpm一样快(Performances | Yarn),尽管竞争仍然激烈。

更好的官网

网站在风格和内容上都进行了大修,确实变得更好了,而且文档间链接能力非常完善。

结束语

在发布了53个候选版本后,Yarn 3已经过渡到Yarn 4。这次迭代的重点是改善用户体验并减少学习曲线。Yarn团队努力避免重大的破坏性变化,并鼓励反馈。未来的计划包括探索原生Yarn构建和解决性能问题。但是,目前还没有完全重写代码库的计划。Yarn团队将继续在现有的基础上,完善CLI、UI命令和减少学习曲线。

相关推荐
熊的猫4 分钟前
webpack 核心模块 — loader & plugins
前端·javascript·chrome·webpack·前端框架·node.js·ecmascript
速盾cdn11 分钟前
速盾:vue的cdn是干嘛的?
服务器·前端·网络
四喜花露水43 分钟前
Vue 自定义icon组件封装SVG图标
前端·javascript·vue.js
前端Hardy1 小时前
HTML&CSS: 实现可爱的冰墩墩
前端·javascript·css·html·css3
web Rookie1 小时前
JS类型检测大全:从零基础到高级应用
开发语言·前端·javascript
Au_ust1 小时前
css:基础
前端·css
帅帅哥的兜兜1 小时前
css基础:底部固定,导航栏浮动在顶部
前端·css·css3
yi碗汤园2 小时前
【一文了解】C#基础-集合
开发语言·前端·unity·c#
就是个名称2 小时前
购物车-多元素组合动画css
前端·css
编程一生2 小时前
回调数据丢了?
运维·服务器·前端