@anolilab/semantic-release-clean-package-json

中文文档
5.5.29发布于 2026/11/03MITTypeScriptES Module构建来源已验证近 30 天下载 7.6万

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

中文使用文档
文档目录13 节
  1. Clean package.json通过去除不必要的属性发布前.
  2. 为什么?
  3. 安装
  4. 使用量
  5. 使用的步骤
  6. 选项
  7. 实例
  8. 默认保存的属性
  9. 支持的节点.js版本
  10. 捐款
  11. 贷项
  12. 在阿诺利拉布制造的
  13. 许可证
semantic-release-clean-package-json

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


typescript-image mit licence npm downloads Chat PRs Welcome


Daniel Bannert的开源工作得到了社区的支持 GitHub 赞助商


为什么?

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

主要好处:

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

安装

npm install @anolilab/semantic-release-clean-package-json
yarn add @anolilab/semantic-release-clean-package-json
pnpm add @anolilab/semantic-release-clean-package-json

使用量

插件可以在 语义释放 配置文件数字 :

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

{
    "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 目录.

说明: 如果使用 可共享配置 定义其中之一的选项,您可以设置为 false 在你身边 语义释放 配置 以使用默认值.

实例

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

{
    "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 特定字段 :

{
    "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 不在根目录中:

{
    "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数字 :

无

  • 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

光盘

节点.js

  • type
  • exports
  • imports

VSCode 扩展声明

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

角软件包格式

  • fesm2020
  • fesm2015
  • esm2020
  • es2020

类型脚本

  • types
  • typings
  • typesVersions

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

支持的节点.js版本

这一生态系统中的图书馆尽最大努力追踪 Node.js的释放时间表。 。 。 . 这里 关于为什么我们认为这很重要的文章。 。 。 .

捐款

如果你愿意帮忙看看 问题清单 看看我们 捐款 准则.

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

贷项

在阿诺利拉布制造的

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

许可证

Anolilab语义 -- -- 释放 -- -- 清洁 -- -- 包装 -- -- Json是开源软件,根据该软件许可 麻省理工学院

版本与发布记录

@anolilab/semantic-release-clean-package-json 共发布 62 个版本,首次发布于 2025/01/15;过去 12 个月发布了 43 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
5.5.29latest2026/11/033 天前
5.5.282026/10/041 个月前
5.5.272026/09/261 个月前
5.5.262026/09/261 个月前
5.5.252026/09/221 个月前
5.5.242026/09/221 个月前

其他发布通道:alpha → 4.2.3-alpha.2。

关于 @anolilab/semantic-release-clean-package-json 的常见问题

@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 和提交记录判断。