gutenbergdocs/docs/contributors/code/scripts.md
2025-10-22 01:40:18 +08:00

75 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Polyfill 脚本
编辑器还为某些可能并非所有现代浏览器都支持的功能提供了 polyfill。
建议使用主要的 `wp-polyfill` 脚本句柄,它会负责加载以下所有提到的 polyfill。
| 脚本名称 | 句柄 | 描述 |
| ------------------------------------------------------------------------- | --------------------------- | -------------------------------------------------------------------------------------------------- |
| [Babel Polyfill](https://babeljs.io/docs/en/babel-polyfill) | wp-polyfill | 模拟完整的 ES2015+ 环境。主脚本,用于加载以下所有附加的 polyfill |
| [Fetch Polyfill](https://www.npmjs.com/package/whatwg-fetch) | wp-polyfill-fetch | 实现标准 Fetch 规范子集的 polyfill |
| [Promise Polyfill](https://www.npmjs.com/package/promise-polyfill) | wp-polyfill-promise | 适用于浏览器和 Node 的轻量级 ES6 Promise polyfill |
| [Formdata Polyfill](https://www.npmjs.com/package/formdata-polyfill) | wp-polyfill-formdata | 有条件地替换原生实现的 polyfill |
| [Node Contains Polyfill](https://www.npmjs.com/package/polyfill-library) | wp-polyfill-node-contains | 用于 Node.contains 的 polyfill |
| [Element Closest Polyfill](https://www.npmjs.com/package/element-closest) | wp-polyfill-element-closest | 返回 DOM 树中与选择器匹配的最接近的元素 |
## 打包与代码共享
当使用如 [webpack](https://webpack.js.org/) 这样的 JavaScript 打包工具时,此处提到的脚本可以从打包文件中排除,并通过 WordPress 以脚本依赖的形式提供,参见 [`wp_enqueue_script`](https://developer.wordpress.org/reference/functions/wp_enqueue_script/#default-scripts-included-and-registered-by-wordpress)。
[`@wordpress/dependency-extraction-webpack-plugin`](https://github.com/WordPress/gutenberg/tree/HEAD/packages/dependency-extraction-webpack-plugin) 提供了一个 webpack 插件,用于帮助从打包文件中提取 WordPress 依赖项。`@wordpress/scripts` 的 [`build`](https://github.com/WordPress/gutenberg/tree/HEAD/packages/scripts#build) 脚本默认包含此插件。
| [NUX](/packages/nux/README.md) | wp-nux | 包含用于引导新用户熟悉WordPress管理界面的组件及wp.data相关方法 |
| [Plugins](/packages/plugins/README.md) | wp-plugins | WordPress插件管理模块 |
| [Redux Routine](/packages/redux-routine/README.md) | wp-redux-routine | 用于生成器协程的Redux中间件 |
| [Rich Text](/packages/rich-text/README.md) | wp-rich-text | 实现HTML/DOM树与富文本值相互转换的辅助函数 |
| [Shortcode](/packages/shortcode/README.md) | wp-shortcode | WordPress短代码模块 |
| [Token List](/packages/token-list/README.md) | wp-token-list | 可构造的纯JavaScript [DOMTokenList](https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList)实现,支持非浏览器运行时环境 |
| [URL](/packages/url/README.md) | wp-url | 用于操作URL的实用工具集 |
| [Viewport](/packages/viewport/README.md) | wp-viewport | 用于响应浏览器视口尺寸变化的模块 |
| [Wordcount](/packages/wordcount/README.md) | wp-wordcount | WordPress字数统计工具 |
## 第三方脚本
编辑器还使用了一些流行的第三方程序包和脚本。插件开发者同样可以直接使用这些脚本,无需将其打包到代码中(避免增加文件体积)。
| 脚本名称 | 注册句柄 | 功能描述 |
| ---------------------------------------------------- | --------- | ----------------------------------------------------------------------------------------------------- |
| [React](https://reactjs.org) | react | 用于构建用户界面的JavaScript库 |
| [React Dom](https://reactjs.org/docs/react-dom.html) | react-dom | 作为React的DOM和服务器渲染器入口点需与React配合使用 |
| [Moment](https://momentjs.com/) | moment | 用于解析、验证、操作和显示JavaScript中的日期时间 |
| [Lodash](https://lodash.com) | lodash | 提供通用编程任务工具函数的JavaScript库 |
# 脚本
编辑器为插件开发者提供了多个供应商和内部脚本。下表记录了脚本名称、句柄和描述。
## WordPress 脚本
编辑器包含多个功能包以实现各种功能。插件开发者可以利用它们来创建区块、编辑器插件或通用插件。
| 脚本名称 | 句柄 | 描述 |
| -------------------------------------------------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Blob](/packages/blob/README.md) | wp-blob | Blob 实用工具 |
| [区块库](/packages/block-library/README.md) | wp-block-library | 编辑器的区块库 |
| [区块](/packages/blocks/README.md) | wp-blocks | 区块创建 |
| [区块序列化默认解析器](/packages/block-serialization-default-parser/README.md) | wp-block-serialization-default-parser | WordPress 文档的默认区块序列化解析器实现 |
| [区块序列化规范解析器](/packages/block-serialization-spec-parser/README.md) | wp-block-serialization-spec-parser | WordPress 文章的语法文件 (grammar.pegjs) |
| [组件](/packages/components/README.md) | wp-components | 用于创建通用 UI 元素的通用组件 |
| [组合](/packages/compose/README.md) | wp-compose | 一系列便捷的高阶组件 (HOCs) |
| [核心数据](/packages/core-data/README.md) | wp-core-data | 简化和操作核心 WordPress 实体的访问 |
| [数据](/packages/data/README.md) | wp-data | 数据模块作为管理插件和 WordPress 本身应用状态的枢纽 |
| [日期](/packages/date/README.md) | wp-date | WordPress 的日期模块 |
| [弃用](/packages/deprecated/README.md) | wp-deprecated | 用于记录消息以通知开发者某个功能已弃用的实用工具 |
| [DOM](/packages/dom/README.md) | wp-dom | WordPress 的 DOM 实用工具模块 |
| [DOM 就绪](/packages/dom-ready/README.md) | wp-dom-ready | DOM 加载完成后执行回调 |
| [编辑器](/packages/editor/README.md) | wp-editor | WordPress 编辑器的构建块 |
| [编辑文章](/packages/edit-post/README.md) | wp-edit-post | WordPress 的编辑文章模块 |
| [元素](/packages/element/README.md) | wp-element | 元素简单来说是基于 [React](https://reactjs.org/) 的抽象层 |
| [HTML 转义](/packages/escape-html/README.md) | wp-escape-html | HTML 转义实用工具 |
| [钩子](/packages/hooks/README.md) | wp-hooks | 一个轻量高效的 JavaScript 事件管理器 |
| [HTML 实体](/packages/html-entities/README.md) | wp-html-entities | WordPress 的 HTML 实体实用工具 |
| [国际化](/packages/i18n/README.md) | wp-i18n | 客户端本地化的国际化实用工具 |
| [浅比较](/packages/is-shallow-equal/README.md) | wp-is-shallow-equal | 用于对两个对象或数组执行浅比较的函数 |
| [键码](/packages/keycodes/README.md) | wp-keycodes | WordPress 的键码实用工具,用于检查 `onKeyDown` 等事件中按下的键 |
| [列出可重用区块](/packages/list-reusable-blocks/README.md) | wp-list-reusable-blocks | 用于在可重用区块列表页面添加导入/导出链接的包 |