Clean package.json通过去除不必要的属性发布前.
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数字 :
无
nameversionprivatepublishConfigscripts.preinstallscripts.installscripts.postinstallscripts.dependenciesfilesbinbrowsermainmandependenciespeerDependenciespeerDependenciesMetabundledDependenciesoptionalDependenciesenginesoscpudescriptionkeywordsauthorcontributorslicensehomepagerepositorybugsfunding
光盘
节点.js
typeexportsimports
VSCode 扩展声明
publisherdisplayNamecategoriesgalleryBannerpreviewcontributesactivationEventsbadgesmarkdownqnasponsorextensionPackextensionDependenciesextensionKindicon
角软件包格式
fesm2020fesm2015esm2020es2020
类型脚本
typestypingstypesVersions
Bundlers (Webpack, Rollup, esbuild) (英语)
支持的节点.js版本
这一生态系统中的图书馆尽最大努力追踪 Node.js的释放时间表。 。 。 . 这里 关于为什么我们认为这很重要的文章。 。 。 .
捐款
说明: 请注意,该项目已连同《协助者行为守则》一起公布。 通过参加这个项目,你同意遵守其条款.
贷项
在阿诺利拉布制造的
这是一个开源项目,将永远可以自由使用。 如果你觉得这很酷,请 显示它. 阿诺利拉布 是一个开发与AI工作室。 联系我们 你好@anolilab.com 如果你需要任何帮助 这些技术 或者只是想打个招呼!
许可证
Anolilab语义 -- -- 释放 -- -- 清洁 -- -- 包装 -- -- Json是开源软件,根据该软件许可 麻省理工学院