编辑器为插件开发者提供了多个供应商脚本和内部脚本。脚本名称、句柄和描述都记录在下表中。
WordPress 脚本
编辑器包含许多用于实现各种功能的软件包。插件开发者可以利用它们来创建区块、编辑器插件或通用插件。
| 脚本名称 | 句柄 | 描述 |
|---|---|---|
| Blob | wp-blob | Blob 实用工具 |
| Block Library | wp-block-library | 编辑器所用的区块库 |
| Blocks | wp-blocks | 区块创建 |
| Block Serialization Default Parser | wp-block-serialization-default-parser | 用于 WordPress 文档的默认区块序列化解析器实现 |
| Block Serialization Spec Parser | wp-block-serialization-spec-parser | 用于 WordPress 文章的语法文件(grammar.pegjs) |
| Components | wp-components | 用于创建常见 UI 元素的通用组件 |
| Compose | wp-compose | 实用的高阶组件(HOC)集合 |
| Core Data | wp-core-data | 简化对 WordPress 核心实体的访问和操作 |
| Data | wp-data | 数据模块作为一个枢纽,用于管理插件以及 WordPress 本身的应用程序状态 |
| Date | wp-date | WordPress 的日期模块 |
| Deprecated | wp-deprecated | 用于记录消息以通知开发者某项功能已被弃用的实用工具 |
| Dom | wp-dom | WordPress 的 DOM 实用工具模块 |
| Dom Ready | wp-dom-ready | 在 DOM 加载完成后执行回调 |
| Editor | wp-editor | WordPress 编辑器的基础构建模块 |
| Edit Post | wp-edit-post | WordPress 的文章编辑模块 |
| Element | wp-element | Element 简而言之就是 React 之上的一个抽象层 |
| Escape Html | wp-escape-html | HTML 转义实用工具 |
| Hooks | wp-hooks | 一个轻量且高效的 JavaScript 事件管理器 |
| Html Entities | wp-html-entities | WordPress 的 HTML 实体实用工具 |
| I18N | wp-i18n | 用于客户端本地化的国际化实用工具 |
| Is Shallow Equal | wp-is-shallow-equal | 用于对两个对象或数组执行浅层比较的函数 |
| Keycodes | wp-keycodes | WordPress 的键码实用工具,用于在 onKeyDown 等事件中检查所按下的键 |
| List Reusable blocks | wp-list-reusable-blocks | 用于向可复用区块的列表页面添加导入/导出链接的软件包 |
| Plugins | wp-plugins | WordPress 的插件模块 |
| Redux Routine | wp-redux-routine | 用于生成器协程的 Redux 中间件 |
| Rich Text | wp-rich-text | 用于将 HTML 或 DOM 树转换为富文本值以及反向转换的辅助函数 |
| Shortcode | wp-shortcode | WordPress 的短代码模块 |
| Token List | wp-token-list | 可构造的纯 JavaScript DOMTokenList 实现,支持非浏览器运行时 |
| URL | wp-url | 一组用于操作 URL 的实用工具 |
| Viewport | wp-viewport | 用于响应浏览器视口大小变化的模块 |
| Wordcount | wp-wordcount | WordPress 字数统计工具 |
供应商脚本
编辑器还使用了一些流行的第三方软件包和脚本。插件开发者也可以使用这些脚本,而无需将它们打包到自己的代码中(从而避免增大文件体积)。
| 脚本名称 | 句柄 | 描述 |
|---|---|---|
| React | react | React 是一个用于构建用户界面的 JavaScript 库 |
| React Dom | react-dom | 作为 React 的 DOM 和服务器渲染器的入口,旨在与 React 配合使用 |
| Moment | moment | 在 JavaScript 中解析、验证、操作和显示日期与时间 |
| Lodash | lodash | Lodash 是一个为常见编程任务提供实用工具函数的 JavaScript 库 |
Polyfill 脚本
编辑器还为某些并非在所有现代浏览器中都可用的功能提供了 polyfill。
建议使用主脚本句柄 wp-polyfill,它会负责加载下文提到的所有 polyfill。
| 脚本名称 | 句柄 | 描述 |
|---|---|---|
| Babel Polyfill | wp-polyfill | 模拟完整的 ES2015+ 环境。用于加载下文提到的所有附加 polyfill 的主脚本 |
| Fetch Polyfill | wp-polyfill-fetch | 实现标准 Fetch 规范子集的 polyfill |
| Promise Polyfill | wp-polyfill-promise | 适用于浏览器和 Node 的轻量级 ES6 Promise polyfill |
| Formdata Polyfill | wp-polyfill-formdata | 有条件地替换原生实现的 polyfill |
| Node Contains Polyfill | wp-polyfill-node-contains | Node.contains 的 polyfill |
| Element Closest Polyfill | wp-polyfill-element-closest | 返回沿 DOM 树向上与选择器匹配的最近元素 |
打包与代码共享
当使用像 webpack 这样的 JavaScript 打包工具时,这里提到的脚本可以从打包文件中排除,并由 WordPress 以脚本依赖的形式提供,参见 wp_enqueue_script。
@wordpress/dependency-extraction-webpack-plugin 提供了一个 webpack 插件,用于帮助从打包文件中提取 WordPress 依赖。@wordpress/scripts 的 build 脚本默认包含该插件。