1.1.1 • Published 6 months ago
@build-script/node-package-tools v1.1.1
Node.js 包发布辅助工具集
使用方式
Usage:
njspkg [通用参数] <命令> [命令参数]
通用参数:
--quiet: 减少输出
--registry <xxx>: npm服务器,默认从.npmrc读取(必须有schema://)
--dist-tag <xxx>: 需要从服务器读取时使用的tag,默认为"latest"
--package <xxx>: 实际操作前,更改当前目录(此文件夹应包含package.json)
--json: 输出json格式(部分命令支持)
--help: 显示帮助信息
detect-package-change --bump --json 本地运行npm pack并与npm上的最新版本对比差异
--bump: 当发现更改时更新package.json,增加版本号0.0.1
monorepo-cnpm-sync 调用cnpm sync命令
需要在PATH中存在cnpm命令
monorepo-invalid 从npm缓存中删除关于本monorepo的数据,以便安装最新版本
monorepo-list --verbose --json --relative 列出所有项目目录
--verbose: 列出所有信息,而不仅是目录
--json: 输出json(不受--verbose和--name影响)
--relative: 输出相对路径(相对于monorepo根目录)
monorepo-publish --verbose / --silent --dry 在monorepo中按照依赖顺序发布修改过的包
--verbose: 列出所有信息,而不仅是目录
--dry: 仅检查修改,不发布(仍会修改version字段)
--debug: 运行后不要删除临时文件和目录
--skip <N>: 跳过前N-1个包(从第N个包开始运行)
monorepo-tsconfig --dev 为所有项目的 tsconfig.json 添加 references 字段
查找tsconfig.json和src/tsconfig.json。如果不在这里,可以在package.json中设置exports['./tsconfig.json'] = './xxxx'
--dev: 也将devDependencies中的包添加到references中
run-if-version-mismatch --no-cache --flush -- command to run 如果版本号改变,则运行命令
如果package.json中的version与npm上的版本(latest)不一致,则运行命令
注意: 命令行中的"--"是必须的
--no-cache: 禁用缓存
--flush: 程序成功退出时自动删除npm缓存
--newer: 只有在本地版本号大于远程版本号时才运行(默认只要不同就运行)
watch --verbose --keep-output 在每个项目中运行watch脚本
--verbose: 显示所有输出,而不仅仅在编译出错时输出
--keep-output: 不要清屏
--server: 输出服务器模式
--client: 输出客户端模式
--silent: 目前必须设置,否则输出会乱可用工具
--bump: 不要输出,而是:如果发现有修改,则自动更新package.json(当前仅支持将version的PATCH位+1)--json: 输出json(当检测到stdout不是终端时,默认为json输出)
此工具要求PATH中存在git
输出结果示例:
--json模式:{ changedFiles: [......], changed: true }- 默认模式:
changed no./changed yes.
只要运行过程没有错误,程序就返回0,无论是否发现修改。
命令行中的“--”不可省略
示例:
Eg: njspkg run-if-version-mismatch --flush -- pnpm publish --no-git-checks按照依赖顺序,只有上游项目至少成功一次,才会启动下游的watch脚本
通过匹配命令输出确定编译是否成功
目前仅支持 tsc、heft 两个命令,需要在这里添加新的判断函数
相当于按照依赖顺序,在每个项目中:
1. njspkg detect-package-change --bump
1. njspkg run-if-version-mismatch -- pnpm run publish
然后在工程中运行一次:
2. njspkg monorepo-cnpm-sync
3. njspkg monorepo-invalid