编辑器为插件开发者提供了多个供应商脚本和内部脚本。脚本名称、句柄和描述都记录在下表中。

WordPress 脚本

编辑器包含许多用于实现各种功能的软件包。插件开发者可以利用它们来创建区块、编辑器插件或通用插件。

脚本名称句柄描述
Blobwp-blobBlob 实用工具
Block Librarywp-block-library编辑器所用的区块库
Blockswp-blocks区块创建
Block Serialization Default Parserwp-block-serialization-default-parser用于 WordPress 文档的默认区块序列化解析器实现
Block Serialization Spec Parserwp-block-serialization-spec-parser用于 WordPress 文章的语法文件(grammar.pegjs)
Componentswp-components用于创建常见 UI 元素的通用组件
Composewp-compose实用的高阶组件(HOC)集合
Core Datawp-core-data简化对 WordPress 核心实体的访问和操作
Datawp-data数据模块作为一个枢纽,用于管理插件以及 WordPress 本身的应用程序状态
Datewp-dateWordPress 的日期模块
Deprecatedwp-deprecated用于记录消息以通知开发者某项功能已被弃用的实用工具
Domwp-domWordPress 的 DOM 实用工具模块
Dom Readywp-dom-ready在 DOM 加载完成后执行回调
Editorwp-editorWordPress 编辑器的基础构建模块
Edit Postwp-edit-postWordPress 的文章编辑模块
Elementwp-elementElement 简而言之就是 React 之上的一个抽象层
Escape Htmlwp-escape-htmlHTML 转义实用工具
Hookswp-hooks一个轻量且高效的 JavaScript 事件管理器
Html Entitieswp-html-entitiesWordPress 的 HTML 实体实用工具
I18Nwp-i18n用于客户端本地化的国际化实用工具
Is Shallow Equalwp-is-shallow-equal用于对两个对象或数组执行浅层比较的函数
Keycodeswp-keycodesWordPress 的键码实用工具,用于在 onKeyDown 等事件中检查所按下的键
List Reusable blockswp-list-reusable-blocks用于向可复用区块的列表页面添加导入/导出链接的软件包
Pluginswp-pluginsWordPress 的插件模块
Redux Routinewp-redux-routine用于生成器协程的 Redux 中间件
Rich Textwp-rich-text用于将 HTML 或 DOM 树转换为富文本值以及反向转换的辅助函数
Shortcodewp-shortcodeWordPress 的短代码模块
Token Listwp-token-list可构造的纯 JavaScript DOMTokenList 实现,支持非浏览器运行时
URLwp-url一组用于操作 URL 的实用工具
Viewportwp-viewport用于响应浏览器视口大小变化的模块
Wordcountwp-wordcountWordPress 字数统计工具

供应商脚本

编辑器还使用了一些流行的第三方软件包和脚本。插件开发者也可以使用这些脚本,而无需将它们打包到自己的代码中(从而避免增大文件体积)。

脚本名称句柄描述
ReactreactReact 是一个用于构建用户界面的 JavaScript 库
React Domreact-dom作为 React 的 DOM 和服务器渲染器的入口,旨在与 React 配合使用
Momentmoment在 JavaScript 中解析、验证、操作和显示日期与时间
LodashlodashLodash 是一个为常见编程任务提供实用工具函数的 JavaScript 库

Polyfill 脚本

编辑器还为某些并非在所有现代浏览器中都可用的功能提供了 polyfill。

建议使用主脚本句柄 wp-polyfill,它会负责加载下文提到的所有 polyfill。

脚本名称句柄描述
Babel Polyfillwp-polyfill模拟完整的 ES2015+ 环境。用于加载下文提到的所有附加 polyfill 的主脚本
Fetch Polyfillwp-polyfill-fetch实现标准 Fetch 规范子集的 polyfill
Promise Polyfillwp-polyfill-promise适用于浏览器和 Node 的轻量级 ES6 Promise polyfill
Formdata Polyfillwp-polyfill-formdata有条件地替换原生实现的 polyfill
Node Contains Polyfillwp-polyfill-node-containsNode.contains 的 polyfill
Element Closest Polyfillwp-polyfill-element-closest返回沿 DOM 树向上与选择器匹配的最近元素

打包与代码共享

当使用像 webpack 这样的 JavaScript 打包工具时,这里提到的脚本可以从打包文件中排除,并由 WordPress 以脚本依赖的形式提供,参见 wp_enqueue_script。

@wordpress/dependency-extraction-webpack-plugin 提供了一个 webpack 插件,用于帮助从打包文件中提取 WordPress 依赖。@wordpress/scripts 的 build 脚本默认包含该插件。