# @anolilab/semantic-release-clean-package-json 中文文档

规范地址：https://npmcn.com/package/%40anolilab/semantic-release-clean-package-json/

版本：5\.5\.29
npm 元数据更新时间：2026-11-02T17:13:59.290Z
中文译文更新时间：2026-11-06T05:35:40.479Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40anolilab/semantic-release-clean-package-json
原文对照：https://npmcn.com/package/%40anolilab/semantic-release-clean-package-json/?lang=original
项目主页：https://github.com/anolilab/semantic-release/tree/main/packages/semantic-release-clean-package-json
源码仓库：https://github.com/anolilab/semantic-release

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

- 包体积（解压后）：47.3 kB，6 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^22\.14\.0 \|\| \>=24\.10\.0
- 运行依赖：5 个
- 首次发布：2025-01-15T08:34:03.723Z
- 最新版本发布：2026-11-02T17:13:58.846Z
- 近 30 天下载量：75866（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：62（近 12 个月 43 个）

## 中文简介

Clean package.json通过去除不必要的属性发布前.

## 安装

```sh
npm install @anolilab/semantic-release-clean-package-json
```

也可以使用：`pnpm add @anolilab/semantic-release-clean-package-json`、`yarn add @anolilab/semantic-release-clean-package-json`、`bun add @anolilab/semantic-release-clean-package-json`

## README

[![semantic-release-clean-package-json](https://npmcn.com/package/%40anolilab/semantic-release-clean-package-json/__assets__/package-og.svg)](https://github.com/anolilab/semantic-release)

### Clean package.json通过去除不必要的属性发布前.

  

[![typescript-image](https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript)](https://www.typescriptlang.org/) [![mit licence](https://img.shields.io/npm/l/@anolilab/semantic-release-clean-package-json?style=for-the-badge)](https://github.com/anolilab/multi-semantic-release/blob/main/LICENSE) [![npm downloads](https://img.shields.io/npm/dm/@anolilab/semantic-release-clean-package-json?style=for-the-badge)](https://www.npmjs.com/package/@anolilab/semantic-release-clean-package-json) [![Chat](https://img.shields.io/discord/902465130518949899.svg?style=for-the-badge)](https://discord.gg/eajEZvk2PG) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge)](https://github.com/anolilab/multi-semantic-release/blob/main/.github/CONTRIBUTING.md)

* * *

Daniel Bannert的开源工作得到了社区的支持 [GitHub 赞助商](https://github.com/sponsors/prisis)

* * *

## 为什么?

发布 npm 软件包时,许多属性在 `package.json` 只是在开发和建设时间时才需要,但在公布的一揽子计划中则不需要。 这个插件会自动去除不必要的属性,同时保留软件包在生产中正确工作所需的基本属性.

主要好处:

-   通过删除只开发属性来减少软件包的大小
-   防止内部配置和元数据泄露
-   为终端用户维持一个干净和有重点的软件包。json
-   通过配置自定义属性保存

## 安装

```sh
npm install @anolilab/semantic-release-clean-package-json
```

```sh
yarn add @anolilab/semantic-release-clean-package-json
```

```sh
pnpm add @anolilab/semantic-release-clean-package-json
```

## 使用量

插件可以在 [**语义释放** 配置文件](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration)数字 :

> \[大 非常重要的是: 插件必须放在 `@semantic-release/github` 或者说 `@semantic-release/git` 和之前 `@anolilab/semantic-release-pnpm` 或者说 `@semantic-release/npm` 插件否则 `package.json` 将被清理并公布到 GitHub / 您的 Git 提供者 .

```json
{
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@anolilab/semantic-release-clean-package-json",
        "@anolilab/semantic-release-pnpm",
        "@semantic-release/github"
    ]
}
```

## 使用的步骤

| 步骤 | 说明 |
| --- | --- |
| `publish` | \- 创建原始软件包的备份  
\- 从软件包中删除所有非保留属性  
\- 保留默认列表和自定义中指定的属性 `keep` 选项  
\- 在保存列表中保存特定的 npm 脚本  
\- 写干净的包。 json文件 |
| `success` | \- 恢复原始软件包  
\- 更新版本编号,以匹配已发布的版本  
\- 删除备份文件  
\- 日志成功或错误消息 |

### 选项

| 选项 | 说明 | 默认 |
| --- | --- | --- |
| `pkgRoot` | 要发布的目录路径 . | `.` |
| `keep` | 要保留的财产名称 . | `[]` |

**说明**编号: `pkgRoot` 目录必须包含 `package.json`。该版本将在 `package.json` 财务报告和审定财务报表 `npm-shrinkwrap.json` 内部 `pkgRoot` 目录.

**说明**: 如果使用 [可共享配置](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/shareable-configurations.md#shareable-configurations) 定义其中之一的选项,您可以设置为 `false` 在你身边 [**语义释放** 配置](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration) 以使用默认值.

### 实例

插件可以配置自定义属性, 以保留默认保存的属性 :

```json
{
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        [
            "@anolilab/semantic-release-clean-package-json",
            {
                "keep": ["custom field"]
            }
        ],
        "@anolilab/semantic-release-pnpm",
        "@semantic-release/github"
    ]
}
```

#### 示例: 发布类型脚本包

发布 TypeScript 软件包时,您可能想要保留 TypeScript 特定字段 :

```jsonc
{
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        [
            "@anolilab/semantic-release-clean-package-json",
            {
                // This are the default values, just a example
                "keep": ["types", "typings", "typesVersions", "module"],
            },
        ],
        "@anolilab/semantic-release-pnpm",
        "@semantic-release/github",
    ],
}
```

#### 示例:自定义软件包根

如果您的软件包. json 不在根目录中:

```json
{
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/github",
        [
            "@anolilab/semantic-release-clean-package-json",
            {
                "pkgRoot": "dist"
            }
        ],
        "@anolilab/semantic-release-pnpm"
    ]
}
```

### 默认保存的属性

默认情况下,这些属性在 `package.json`数字 :

#### [无](https://docs.npmjs.com/cli/v8/configuring-npm/package-json)

-   `name`
-   `version`
-   `private`
-   `publishConfig`
-   `scripts.preinstall`
-   `scripts.install`
-   `scripts.postinstall`
-   `scripts.dependencies`
-   `files`
-   `bin`
-   `browser`
-   `main`
-   `man`
-   `dependencies`
-   `peerDependencies`
-   `peerDependenciesMeta`
-   `bundledDependencies`
-   `optionalDependencies`
-   `engines`
-   `os`
-   `cpu`
-   `description`
-   `keywords`
-   `author`
-   `contributors`
-   `license`
-   `homepage`
-   `repository`
-   `bugs`
-   `funding`

#### 光盘

-   [`jsdelivr`](https://www.jsdelivr.com/features#publishing-packages)
-   [`unpkg`](https://unpkg.com/)

#### [节点.js](https://nodejs.org/api/packages.html#nodejs-packagejson-field-definitions)

-   `type`
-   `exports`
-   `imports`

#### [VSCode 扩展声明](https://code.visualstudio.com/api/references/extension-manifest)

-   `publisher`
-   `displayName`
-   `categories`
-   `galleryBanner`
-   `preview`
-   `contributes`
-   `activationEvents`
-   `badges`
-   `markdown`
-   `qna`
-   `sponsor`
-   `extensionPack`
-   `extensionDependencies`
-   `extensionKind`
-   `icon`

#### [角软件包格式](https://angular.io/guide/angular-package-format#legacy-resolution-keys)

-   `fesm2020`
-   `fesm2015`
-   `esm2020`
-   `es2020`

#### [类型脚本](https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html)

-   `types`
-   `typings`
-   `typesVersions`

#### Bundlers (Webpack, Rollup, esbuild) (英语)

-   [`module`](https://stackoverflow.com/questions/42708484/what-is-the-module-package-json-field-for)
-   [`sideEffects`](https://webpack.js.org/guides/tree-shaking/)

## 支持的节点.js版本

这一生态系统中的图书馆尽最大努力追踪 [Node.js的释放时间表](https://github.com/nodejs/release#release-schedule)。 。 。 . 这里 [关于为什么我们认为这很重要的文章](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a)。 。 。 .

## 捐款

如果你愿意帮忙看看 [问题清单](https://github.com/anolilab/semantic-release/issues) 看看我们 [捐款](https://npmcn.com/package/%40anolilab/semantic-release-clean-package-json/.github/CONTRIBUTING.md) 准则.

> **说明:** 请注意,该项目已连同《协助者行为守则》一起公布。 通过参加这个项目,你同意遵守其条款.

## 贷项

-   [丹尼尔·班纳特](https://github.com/prisis)
-   [所有贡献者](https://github.com/anolilab/semantic-release/graphs/contributors)

## 在阿诺利拉布制造的

这是一个开源项目,将永远可以自由使用。 如果你觉得这很酷,请 显示它. [阿诺利拉布](https://www.anolilab.com/open-source) 是一个开发与AI工作室。 联系我们 [你好@anolilab.com](mailto:hello@anolilab.com) 如果你需要任何帮助 这些技术 或者只是想打个招呼!

## 许可证

Anolilab语义 -- -- 释放 -- -- 清洁 -- -- 包装 -- -- Json是开源软件,根据该软件许可 [麻省理工学院](https://npmcn.com/package/%40anolilab/semantic-release-clean-package-json/LICENSE.md)

## 常见问题

### @anolilab/semantic-release-clean-package-json 是什么？

Clean package\.json通过去除不必要的属性发布前\.

### 如何安装 @anolilab/semantic-release-clean-package-json？

在项目目录运行 npm install @anolilab/semantic-release-clean-package-json，或使用 pnpm add / yarn add / bun add。

### @anolilab/semantic-release-clean-package-json 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @anolilab/semantic-release-clean-package-json 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @anolilab/semantic-release-clean-package-json 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^22\.14\.0 \|\| \>=24\.10\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @anolilab/semantic-release-clean-package-json 可以商用吗？

@anolilab/semantic-release-clean-package-json 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @anolilab/semantic-release-clean-package-json 的下载量有多少？

根据 npm 官方下载统计，@anolilab/semantic-release-clean-package-json 在 2026/10/06 – 2026/11/04 这 30 天内被下载 75,866 次，日均约 2,529 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @anolilab/semantic-release-clean-package-json 还在维护吗？

最新版本 5\.5\.29 发布于 2026/11/03（3 天前）；至今共发布 62 个版本，其中过去 12 个月发布了 43 个；首次发布于 2025/01/15。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

