您的位置:首页 > IT > 正文

观点:Parcel 2.9.0 发布,零配置构建工具

来源:OSCHINA     时间:2023-05-28 08:22:24

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 现在包含一个--traceCLI 标志,它将跟踪在构建的每个阶段花费了多少时间、调用了哪些插件以及每个阶段花费了多长时间。以 Chrome 跟踪格式输出数据,您可以将其加载到 Chrome 开发工具或其他更高级的分析工具(如 Perfetto)中。

此版本中还有许多较小的功能和错误修复,可查看完整的发行说明以了解详细信息。

相关文章