You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular构建时自动生成CHANGELOG.md并覆盖前后端提交?

我来帮你搞定这两个需求——首先是Angular构建阶段自动更新CHANGELOG,然后是前后端统一生成变更日志的方案,都是实际项目里常用的套路,往下看:


一、Angular构建阶段自动更新CHANGELOG.md

想要在构建时自动更新CHANGELOG,核心是把生成命令和构建流程绑定起来,分两步走:

1. 配置npm脚本关联生成与构建

打开项目根目录的package.json,修改scripts字段,让构建命令先执行CHANGELOG生成,再跑Angular构建:

{
  "scripts": {
    "build": "generate-changelog -a && ng build",
    "build:prod": "generate-changelog -a && ng build --configuration production"
  }
}

这里的-a参数是让工具追加增量变更到现有文件(不会覆盖之前的内容),如果需要生成完整的全量CHANGELOG可以去掉这个参数。如果你的项目需要同步版本号,还可以结合npm version命令做版本升级+CHANGELOG更新的联动:

{
  "scripts": {
    "release:patch": "npm version patch && generate-changelog -a && ng build --configuration production"
  }
}

这个脚本会先把版本号升级一个补丁版本(比如从1.0.0到1.0.1),再更新CHANGELOG,最后执行生产构建,适合发布流程用。

2. CI/CD环境的自动化(可选)

如果是在CI/CD流水线(比如GitHub Actions、GitLab CI)里跑构建,直接调用上面的自定义脚本就行。举个GitHub Actions的例子:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install dependencies
        run: npm ci
      - name: Build with changelog update
        run: npm run build:prod
      # 可选:自动把更新后的CHANGELOG提交回仓库
      - name: Commit changelog
        run: |
          git config --global user.name "CI Bot"
          git config --global user.email "ci-bot@yourdomain.com"
          git add CHANGELOG.md
          git commit -m "chore: update CHANGELOG for production build"
          git push

注意:自动提交的话要确保CI环境有仓库的推送权限,比如用平台提供的令牌或个人访问密钥。


二、前后端(Angular+Java)统一生成CHANGELOG.md的方案

要统一生成前后端的变更日志,核心是统一提交规范+统一生成逻辑,分两种常见场景:

场景1:前后端在同一个Monorepo仓库

如果你的前后端代码放在同一个仓库(比如用Nx管理,或者简单拆成/frontend和/backend目录),直接在根目录操作就行:

第一步:统一提交信息规范

要求所有开发人员提交代码时遵循Conventional Commits规范,示例:

  • feat(frontend): 添加用户个人中心页面
  • fix(backend): 修复支付接口超时bug
  • docs(common): 更新API接口文档
    这样生成的CHANGELOG会自动根据前缀(frontend/backend)分类展示,一目了然。

第二步:根目录配置生成脚本

在仓库根目录安装generate-changelog,然后在根目录的package.json里加脚本:

{
  "scripts": {
    "changelog:update": "generate-changelog -a"
  }
}

每次需要更新CHANGELOG时,直接在根目录跑npm run changelog:update,它会扫描整个仓库的提交历史,生成包含前后端所有变更的统一日志。如果需要更精细的分类,还可以配置.changelogrc自定义分组规则。

场景2:前后端在独立仓库

如果前后端是分开的两个仓库,就得靠CI/CD来聚合提交历史了:

第一步:统一提交规范

和Monorepo场景一样,强制要求前后端都用Conventional Commits,并且提交信息里必须标注模块(frontend/backend)。

第二步:CI流水线中聚合生成

在CI流程里做这几件事:

  1. 同时拉取前端和后端仓库的代码;
  2. 用generate-changelog(或者更灵活的conventional-changelog-cli)合并两个仓库的提交历史,生成统一的CHANGELOG;
  3. 把生成的CHANGELOG推送到专门的文档仓库,或者作为发布包的一部分输出。

比如用conventional-changelog-cli的话,可以配置自定义模板,把前后端的变更分开展示,灵活性比generate-changelog更高。

关键注意事项

  • 提交规范是基础:没有统一的提交格式,生成的CHANGELOG会杂乱无章,根本没法区分前后端的变更,一定要和团队统一好规则;
  • 如果需要自动版本管理,建议用npm version或者lerna这类工具,同步前后端的版本号(如果你的项目要求版本统一的话)。

内容的提问来源于stack exchange,提问作者cham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 18:42:32