SuperAPI AI 工具集

verify-dist

编程与开发

查看项目

更新于 10-15 21:51

技能介绍

用途:action-release 仓库提交了由 ncc 构建的 dist/index.js,verify-dist CI 工作流会检查提交的 bundle 是否与源码一致。本技能用于在本地保持两者同步。触发场景:修改了 src/ 下内容、在 package.json 的 dependencies(非 devDependencies)中升级了运行时依赖,或 CI 在 PR 上提示构建后存在未提交变更。

模式:--check(默认)只报告 dist/ 是否与当前源码树同步,不做修改:yarn install --frozen-lockfile、yarn build、git diff --ignore-space-at-eol --stat dist/。diff 为空即同步;非空则报告变更文件与行数,并询问是否切换到 --fix。--fix 会重建并暂存 dist/:yarn install、yarn build、git add dist/、git status --short dist/;不会自动提交,交由用户先审查 bundle 差异。建议提交信息为 build: regenerate dist/index.js,或与源码变更关联的 <type>(<scope>): <summary> 并注明 Regenerates dist/index.js。

提交前需确保仓库 pre-commit 钩子已安装(ls .git/hooks/pre-commit;缺失时运行 make 或 pre-commit install)。set-docker-tag-from-branch 钩子会在分支首次提交时重写 action.yml 并导致提交失败,可暂存 action.yml 后再次提交恢复,不要使用 --amend。CI 不运行 pre-commit,其 prepare-docker 任务会拒绝 action.yml 中 Docker 标签仍为 3.6.0 之类语义化版本的 PR,因此需靠本地钩子保持标签同步。

注意:CI 检查命令为 git diff --ignore-space-at-eol dist/,仅空白差异可通过。yarn build 执行 ncc build src/main.ts -e @sentry/cli,@sentry/cli 因自带原生二进制而被有意排除。bundle 差异可能较大,属正常现象,只需确认目标符号存在。切勿手工编辑 dist/index.js,始终重新生成。相关文件包括 .github/workflows/verify-dist.yml、package.json 的 scripts.build、src/main.ts。