WordPress 开发的默认 Babel preset。
该 preset 包含了启用语言特性和语法扩展的配置,旨在为 WordPress 提供支持。其中包括已达到 Stage 4(“完成”) 的 ECMAScript 提案,以及 JSX 语法扩展。更多信息,请参阅 JavaScript 编码规范。
安装
安装模块
npm install @wordpress/babel-preset-default --save-dev
注意:此包需要具有长期支持状态(LTS)的 Node.js 版本(请检查 Active LTS 或 Maintenance LTS 版本)。它不兼容旧版本。
用法
有多种方法可以配置 Babel。有关更多信息,请参阅 Babel 的配置文档。要使用此 preset,只需在 Babel 配置的 presets 选项中引用 @wordpress/babel-preset-default 即可。
例如,使用 .babelrc:
{
"presets": [ "@wordpress/babel-preset-default" ]
}
扩展配置
此 preset 是一种有特定主张的配置。如果您想添加或更改此配置,可以通过扩展您的 Babel 配置来实现,包括覆盖通过此 preset 包含的插件或 preset。熟悉 配置的实现可能会有所帮助,以了解哪些特定的插件通过此 preset 默认启用。
例如,如果您想使用尚未达到 WordPress 稳定性要求的新语言特性提案,您可以将其作为额外的插件添加到您的 Babel 配置中:
{
"presets": [ "@wordpress/babel-preset-default" ],
"plugins": [ "@babel/plugin-transform-class-properties" ]
}
Polyfill
有一个互补的 build/polyfill.js(最小化版本 – build/polyfill.min.js)文件可用,它为 WordPress 项目支持的浏览器中缺失的 ECMAScript 特性提供了 polyfill(supported browsers)(#31279)。它是已弃用的 @babel/polyfill 包的即用型替代品,并且也基于 core-js 项目。
如果被使用的功能需要 polyfill,则需要在某些情况下包含它。您可以将其预置到编译后的代码中,或者在 <script> 中包含它。
TC39 提案
如果您需要使用非 Stage 4 的提案,此 polyfill 不会自动为您导入它们。您将必须单独从其他 polyfill(如 core-js)中导入它们。
为此包做出贡献
这是 Gutenberg 项目的一部分的一个独立包。该项目组织为 monorepo。它由多个自包含的软件包组成,每个包都有特定的目的。此 monorepo 中的包发布到 npm,并被 WordPress 以及其他软件项目使用。
要了解有关为此包或整个 Gutenberg 做出贡献的更多信息,请阅读项目的主要 贡献者指南。