ect-cli
v1.0.7
Published
CLI tool for updating npm packages with SVN integration
Readme
ect-cli
CLI 工具,用于更新 npm 包并集成 SVN 操作,同时提供构建清理、打包和一键发布能力。
功能特性
- 🔄 自动更新 npm 包到最新版本
- 支持指定包名或使用默认包(
ectv-base) - 支持 URL 格式
.tgz和普通版本号格式依赖
- 支持指定包名或使用默认包(
- 🧾 集成 SVN 工作流
- 支持 SVN 认证配置(地址、用户名、密码)
- 自动执行
svn update、svn commit,并在失败时尝试回滚和重试
- 🚀 自动安装依赖
- 更新完依赖后自动执行
npm install --force(可通过参数跳过)
- 更新完依赖后自动执行
- ⚙️ 可配置 npm registry
- 可通过
ect-cli config registry或环境变量自定义 registry
- 可通过
- 🧹 清理构建目录
- 一键删除项目根目录下的
dist目录
- 一键删除项目根目录下的
- 📦 构建打包
- 将任意目录(默认
dist)打包为 zip 文件 - 压缩包名称基于
package.json的name与version(例如:ect-cli-1.0.5.zip)
- 将任意目录(默认
- 📮 一键发布到 npm
- 内置
release脚本,自动递增版本号、构建并发布到 npm registry
- 内置
安装
npm install -g ect-cli配置
首次使用前,建议先配置 SVN 和 registry 信息:
# 设置 SVN 地址
ect-cli config svn-url <svn-url>
# 设置 SVN 用户名
ect-cli config svn-username <username>
# 设置 SVN 密码
ect-cli config svn-password <password>
# 设置 npm registry(可选,默认: https://registry.npmjs.org)
ect-cli config registry <registry-url>
# 查看当前配置
ect-cli config show配置信息保存在 ~/.ect-cli/config.json。
使用方法
更新包(update)
# 更新默认包(ectv-base)
ect-cli update
# 更新指定包
ect-cli update <package-name>
# 跳过 SVN 操作
ect-cli update --skip-svn
# 跳过 npm install
ect-cli update --skip-install
# 指定 registry(覆盖配置中的 registry)
ect-cli update --registry <registry-url>配置管理(config)
# 显示所有配置
ect-cli config show
# 设置 SVN 地址
ect-cli config svn-url <url>
# 设置 SVN 用户名
ect-cli config svn-username <username>
# 设置 SVN 密码
ect-cli config svn-password <password>
# 设置 npm registry
ect-cli config registry <url>清理构建目录(clean)
# 清理项目根目录下的 dist 目录
ect-cli clean此命令会永久删除
dist目录,请谨慎使用。
打包目录为 zip(pack)
默认将项目根目录下的 dist 目录打包到 ./release 目录,压缩包名为 <name>-<version>.zip:
# 打包 dist 到 ./release/ect-cli-<version>.zip
ect-cli pack
# 打包自定义目录(例如 build)到 ./release
ect-cli pack build
# 指定输出目录(例如 ./artifacts)
ect-cli pack dist -o ./artifacts开发
安装依赖
npm install开发模式
npm run dev构建
npm run build构建后的文件在 dist/ 目录。
发布
自动发布
发布脚本会自动:
- 递增版本号(
patch/minor/major) - 更新
package.json中的版本号 - 执行构建(使用 Rollup 打包并混淆)
- 发布到配置好的 npm registry
# 发布 patch 版本(默认)
npm run release
# 发布 minor 版本
npm run release:minor
# 发布 major 版本
npm run release:major发布配置
在 package.json 中配置发布 registry(默认已指向官方 npm):
{
"publishConfig": {
"registry": "https://registry.npmjs.org"
}
}或通过环境变量:
export NPM_REGISTRY=https://npm.bg-online.com.cn
npm run release工作流程
执行 ect-cli update 时,工具会:
- 🔍 查询 npm registry 获取最新可用版本
- 🔄 如果配置了 SVN:
- 执行
svn update更新工作副本 - 自动递增项目自身的
patch版本号(例如 1.0.0 → 1.0.1)
- 执行
- 📝 更新
package.json中目标依赖的版本(支持 URL / 版本号两种格式) - 📦 执行
npm install --force安装依赖(可使用--skip-install跳过) - 📤 提交
package.json到 SVN(如果配置了 SVN 且未使用--skip-svn)
支持的依赖格式
工具支持两种依赖格式:
URL 格式:
{ "dependencies": { "ectv-base": "https://npm.bg-online.com.cn/ectv-base/-/ectv-base-1.7.561.tgz" } }版本号格式:
{ "dependencies": { "ectv-base": "^1.7.561" } }
错误处理
如果 SVN 提交失败,工具会:
- 回滚本地修改
- 更新远端最新版本
- 重新应用依赖更新
- 再次尝试提交
许可证
ISC
