# @automattic/jetpack-shared-extension-utils 中文文档

规范地址：https://npmcn.com/package/%40automattic/jetpack-shared-extension-utils/

版本：2\.1\.8
npm 元数据更新时间：2026-11-06T18:39:14.389Z
中文译文更新时间：2026-11-07T07:08:55.660Z
软件包许可：GPL-2\.0-or-later

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40automattic/jetpack-shared-extension-utils
原文对照：https://npmcn.com/package/%40automattic/jetpack-shared-extension-utils/?lang=original
项目主页：https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/shared-extension-utils/#readme
源码仓库：https://github.com/Automattic/jetpack-shared-extension-utils

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：160 kB，46 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：24 个
- 首次发布：2022-02-09T17:57:13.951Z
- 最新版本发布：2026-11-06T11:21:33.785Z
- 近 30 天下载量：2148（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：265（近 12 个月 82 个）

## 中文简介

块编辑器扩展所使用的工具函数

## 安装

```sh
npm install @automattic/jetpack-shared-extension-utils
```

也可以使用：`pnpm add @automattic/jetpack-shared-extension-utils`、`yarn add @automattic/jetpack-shared-extension-utils`、`bun add @automattic/jetpack-shared-extension-utils`

## README

# 共享扩展公用事业

块编辑器扩展使用的工具函数.

这个软件包是密码的新主机 [页:1 `extensions/shared` 目录](https://github.com/Automattic/jetpack/tree/trunk/projects/plugins/jetpack/extensions/shared) ,使插件可以共享。 首先,我们行动 用于 Publicize 编辑器扩展名的代码,但目标是将 所有共享代码.

## 从仓库获取模块数据

软件包依赖 [控件](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-data/#controls) 财务报告和审定财务报表 [解析器](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-data/#resolvers) 从 API 中提取模块数据,并将其放入软件包的 Redux 商店.

### 基本用途

为了让所有模块相关数据在不同的软件包中同步,让我们利用这个Redux存储作为真理的来源,既获取数据又更新数据.

使用 [`withSelect`](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-data/#withselect), (中文(简体) ), `withDispatch` 调取数据的更高顺序组件或 [`useSelect`](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-data/#useselect) 钩从商店取出数据直接取入组件. 示例

```jsx
// Imports.
import { withSelect, withDispatch } from '@wordpress/data';
import { JETPACK_MODULES_STORE_ID } from '@automattic/jetpack-shared-extension-utils';

const SampleComponent = props => {
    const { isModuleActive, isLoadingModules, isChangingStatus, updateJetpackModuleStatus } = props;

    if ( isModuleActive ) {
        return <div>Module is active</div>;
    }

    if ( isLoadingModules ) {
        return <div>Loading modules...</div>;
    }
    
    if ( !isModuleActive ) {
        return <button onClick={ () => updateJetpackModuleStatus( 'contact-form', true ) }>
            Activate module
        </button>;
    }

    return <div>Active contact form module</div>;
}

// We wrap `SampleComponent` into the composition of `withSelect` and `withDispatch` HOCs,
// which will pull the data from the store and pass as a parameter into the component.
// Jetpack modules will be pulled after first selection `isModuleActive`.
export default compose( [
    withSelect( ( select, props ) => {
        const { isModuleActive, areModulesLoading, isModuleUpdating } = select( 'jetpack-modules' );
        return {
            isModuleActive: isModuleActive( 'contact-form' ),
            isLoadingModules: areModulesLoading(),
            isChangingStatus: isModuleUpdating( 'contact-form' ),
        };
    } ),
    withDispatch( dispatch => {
        const { updateJetpackModuleStatus } = dispatch( 'jetpack-modules' );
        return { updateJetpackModuleStatus };
    } ),
] )( ( SampleComponent ) );
```

## 如何安装共享扩展功能

### 从 Git Repo 安装

## 贡献

## 获得帮助

## 警卫

需要报告安全弱点吗? 转到 [https://automattic.com/security/ (中文(中国大陆) )](https://automattic.com/security/) 或者直接到我们的安全漏洞赏金网站 [https://hackerone.com/自失常症](https://hackerone.com/automattic)。 。 。 .

## 许可证

共享扩展使用许可证 [GNU 通用公共许可证 v2( 或以后)](https://npmcn.com/package/%40automattic/jetpack-shared-extension-utils/LICENSE.txt)

## 常见问题

### @automattic/jetpack-shared-extension-utils 是什么？

块编辑器扩展所使用的工具函数

### 如何安装 @automattic/jetpack-shared-extension-utils？

在项目目录运行 npm install @automattic/jetpack-shared-extension-utils，或使用 pnpm add / yarn add / bun add。

### @automattic/jetpack-shared-extension-utils 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/automattic\_\_jetpack-shared-extension-utils 是否存在。

### @automattic/jetpack-shared-extension-utils 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @automattic/jetpack-shared-extension-utils 可以商用吗？

@automattic/jetpack-shared-extension-utils 使用 GPL-2\.0-or-later 许可。强 Copyleft：分发包含该代码的软件时，整个作品需以兼容的 GPL 许可开源。仅在内部使用、不对外分发时不触发此义务。以上为概括，不构成法律意见，请以许可原文为准。

### @automattic/jetpack-shared-extension-utils 的下载量有多少？

根据 npm 官方下载统计，@automattic/jetpack-shared-extension-utils 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,148 次，日均约 72 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @automattic/jetpack-shared-extension-utils 还在维护吗？

最新版本 2\.1\.8 发布于 2026/11/06（1 天前）；至今共发布 265 个版本，其中过去 12 个月发布了 82 个；首次发布于 2022/02/10。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

