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命令和减少学习曲线。

相关推荐
科杰智能制造20 分钟前
纯前端html、js实现人脸检测和表情检测,可直接在浏览器使用
前端·javascript·html
每天吃饭的羊36 分钟前
组件库的有些点击事件是name-click这是如何分装de
前端·javascript·vue.js
x***01061 小时前
SpringSecurity+jwt实现权限认证功能
android·前端·后端
1024肥宅1 小时前
防抖(Debounce)
前端·javascript·ecmascript 6
1024肥宅1 小时前
节流(Throttle)
前端·javascript·ecmascript 6
by__csdn1 小时前
Vue2纯前端图形验证码实现详解+源码
前端·javascript·typescript·vue·状态模式·css3·canva可画
w***37511 小时前
Spring 核心技术解析【纯干货版】- Ⅶ:Spring 切面编程模块 Spring-Instrument 模块精讲
前端·数据库·spring
我是阿亮啊1 小时前
搭建Vue环境遇到的问题
javascript·vue.js·npm·node.js
GISer_Jing1 小时前
jx前端架构学习
前端·学习·架构
间彧2 小时前
Tailwind CSS详解
前端