@visual-e2e/cli
v0.1.2
Published
Visual E2E CLI (vet) — scaffold, release, and publish
Readme
Visual E2E CLI (vet)
Visual E2E 命令行工具:脚手架、发版与发包。
安装
# 开发(本仓库)
npm install
npm run build
npm link
# 或全局安装发布包后
npm install -g @visual-e2e/cli用法
vet --help
vet --version
# 在空目录初始化工具项目
mkdir my-tool && cd my-tool
vet init tool
# 发版 / 发包(需仓库根目录 .vetcli.js)
vet release
vet release patch
vet pubvet init tool
- 交互填写 tool 配置(id / 名称 / 描述 / 成员 / 版本 / 端口)
- 拉取 visual-e2e-tool-template
- 将配置写入模板占位符(含
tool.json的author.name) - 自动执行
npm install
选项:
| 选项 | 说明 |
|------|------|
| [dir] | 目标目录,默认当前目录 |
| --id | 工具 id(kebab-case) |
| --name | 展示名 |
| --description | 描述 |
| --author | 成员展示名(写入 author.name),默认取 git config user.name 或 visual-e2e |
| --tool-version | 工具初始版本,默认 1.0.0 |
| --port | 首选生产端口 |
| --template-ref | 模板 git 分支/tag,默认 master |
| --template-path | 使用本地模板目录(不访问 GitHub) |
| --template-url | 自定义模板 archive URL |
| --force | 允许非空目录 |
| --yes | 在已提供必要参数时跳过交互 |
| --skip-install | 跳过脚手架后的 npm install |
本地联调模板:
vet init tool --template-path ../visual-e2e-tool-template --id demo --name Demo --author visual-e2e --port 7209 --yes.vetcli.js / vet release / vet pub
在仓库根放置 CommonJS 配置文件 .vetcli.cjs(package.json 为 "type": "module" 时必须用 .cjs):
module.exports = {
allowBranch: ["master"],
bumpFiles: [
"package.json",
"package-lock.json",
{ filename: "version.js", type: "code" },
],
tagPrefix: "v",
releasePrefix: "release-v",
changelog: {
file: "CHANGELOG.md",
githubRepo: "org/repo",
},
hooks: {
prepublish: "npm run pack",
postpublish: "npm run sync:pages",
},
assets: ["dist/*.vettool.zip"],
// releaseNotes: "node scripts/print-notes.mjs", // stdout → gh --notes
};| 命令 | 行为 |
|------|------|
| vet release [bump] | 干净工作区 + 允许分支 → 拉 release-v* → bump → 可选 CHANGELOG → 提交推送 |
| vet pub | 干净工作区 + 允许分支 → prepublish → 推送分支 → tag → gh release(assets)→ postpublish |
项目特有逻辑(CDN、Electron 构建、站点同步、npm publish)写在仓库脚本或 hooks 里;CLI 不内置云厂商细节。
本仓库发版(@visual-e2e/cli)
先用本地构建的 vet(无需已发布到 npm):
npm install && npm run build && npm link
npm run release # 或 vet release [patch|minor|major]
# 合并 release-v* 到 master 后
npm run pub # push + tag + gh release + npm publish.vetcli.cjs 中 postpublish 为 npm publish;scoped 包已设 publishConfig.access: "public"。需已 npm login 且对 @visual-e2e 有权限。
扩展
在 src/commands/ 下增加子命令,并在 cli.ts 注册即可。
