Parcel 是用于 Web 的零配置构建工具。它将出色的开箱即用开发体验与可扩展的体系结构相结合,可将你的项目从零发展为大规模生产应用程序。
Parcel 2.9 现已发布!Parcel v2.9.0 包含许多期待已久的功能,包括支持 package.json“导出”和 tsconfig.json 功能的全新解析器、对 ESM 插件和配置的支持以及本地 Parcel 插件。
此版本还通过由 SWC、增量符号传播和改进的捆绑器数据结构提供支持的新默认 JS 缩小器提高性能,并包括新的构建性能跟踪功能。
更新内容如下:
新的解析器
Parcel v2.9.0 包括一个用 Rust 从头开始编写的全新解析器实现。它支持所有现有的 Parcel 解析功能,同时添加了对 package.json“exports”和“imports”以及 tsconfig.json“baseUrl”、“paths”和“moduleSuffixes”的支持。
ESM 插件和配置
除了对 CommonJS 的现有支持之外,Parcel 现在还支持作为原生 ES 模块编写的插件和配置文件。这意味着插件可以使用 .mjs
格式发布到 npm,或者在它们的 package.json 中使用 "type": "module"
以在 .js
文件中启用 ESM 语法。现在还支持 postcss.config.mjs
等配置文件。
本地插件
在 Parcel v2.9.0 中,插件可以作为来自 .parcelrc
配置的相对路径被引用。不需要有自己的 package.json —— 可以直接引用一个 JavaScript 文件。
插件在进行更改时热重载,甚至不需要在开发时重新启动 Parcel。
仍然鼓励将插件发布到 npm。
SWC 压缩器
在 Parcel v2.9.0 中,默认的压缩器从 Terser 切换到 SWC。
SWC 压缩器比 Terser 快 7 倍左右,同时产生的输出尺寸甚至更小。 SWC 也支持大多数 Terser 配置选项,因此如果您有 .terserrc
,它应该可以继续工作。
增量符号传播
符号传播是一种算法,它遍历项目的完整依赖关系图,并确定每个模块的哪些导出被实际使用,哪些可以被 tree shaking 掉。在 Parcel v2.9.0 中,这个算法现在是增量的。
它不会在您每次进行更改时遍历整个图形,而是跟踪您更改的文件中修改了哪些依赖项,并更新现有图形。
构建性能跟踪
Parcel 现在包含一个 --trace
CLI 标志,它将跟踪在构建的每个阶段花费了多少时间、调用了哪些插件以及每个阶段花费了多长时间。以 Chrome 跟踪格式输出数据,您可以将其加载到 Chrome 开发工具或其他更高级的分析工具(如 Perfetto)中。
此版本中还有许多较小的功能和错误修复,可查看完整的发行说明以了解详细信息。
还没有评论,来说两句吧...