@build-script/node-package-tools
v1.0.36
Published
[English](./README.en.md)
Downloads
4
Readme
Node.js 包发布辅助工具集
使用方式
二选一:
node-package-tools [--common opts] <command> [--params]
njspkg [--common opts] <command> [--params]
通用参数
通用参数也可以在command后面
--quiet
: 默认显示较多输出,设置后只显示结果--registry <xxx>
: 默认使用.npmrc中的设置--dist-tag <xxx>
: 要比较的tag,默认为"latest"--package <xxx>
: 包的本地路径,默认为当前目录
可用工具
--bump
: 不要输出,而是:如果发现有修改,则自动更新package.json(当前仅支持将version的PATCH位+1)--json
: 输出json(当检测到stdout不是终端时,默认为json输出)
此工具要求PATH中存在git
输出结果示例:
--json
模式:{ changedFiles: [......], changed: true }
- 默认模式:
changed no.
/changed yes.
只要运行过程没有错误,程序就返回0,无论是否发现修改。
- 调用
npm-registry-fetch
包,从npm下载最新的package.json
,它支持标准http缓存和代理设置 - 和本地的
package.json
比较version
字段- 如果本地版本号大于远程,则直接判定为
有修改
- 如果本地版本号大于远程,则直接判定为
- 从npm下载dist.tarball指定的压缩包,解压到一个临时目录中
- 在包目录中运行
npm pack
(也支持pnpm、yarn)得到压缩包 - 检查两个压缩包是否相同
- 在临时目录中初始化git仓库
- 立即提交前面解压结果
- 将打包结果覆盖到同一个目录中
- 再次提交
- 检查
git log
输出的内容(强制LANG=C)- 如果没有任何修改,则判定为
无修改
- 如果没有任何修改,则判定为
- 如果有
--bump
,调用semver
修改package.json
中的version
字段 - 否则输出
有修改
没有专用参数,但命令行中的“--”不可省略
示例:
Eg: njspkg run-if-version-mismatch -- pnpm publish --no-git-checks