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

Angular多项目仓库ng lint输出文件被覆盖,求结果合并方案

解决Angular多项目仓库Lint结果合并到单个文件的问题

方案一:临时文件合并法(适配Windows+Git Bash环境)

由于Angular CLI对多项目执行lint时,会逐个处理项目并覆盖输出文件,我们可以先让每个项目的结果输出到独立临时文件,再合并为一个总文件。

  1. 调整格式化脚本输出格式
    确保你的my-format.js输出标准JSON数组(即使单个项目无问题,也要输出空数组[]),方便后续合并:
module.exports = function(results) {
  // 直接将当前项目的lint结果数组转为JSON输出
  return JSON.stringify(results);
};
  1. 编写批量执行脚本
    创建merge-lint-results.sh脚本,或直接在Git Bash中逐行执行以下命令:
# 创建临时目录存放单个项目的lint结果
mkdir -p ./reports/temp-lint

# 遍历projects目录下的所有项目,分别执行lint并输出到临时文件
for project in ./projects/*; do
  if [ -d "$project" ]; then
    project_name=$(basename "$project")
    ng lint "$project_name" --format ./my-format.js --output-file "./reports/temp-lint/${project_name}.json"
  fi
done

# 合并所有临时JSON文件为一个总数组
echo "[" > ./reports/eslint_issues.json
first_file=true
for file in ./reports/temp-lint/*.json; do
  if $first_file; then
    # 第一个文件去掉前后的[],直接写入
    sed 's/^\[\(.*\)\]$/\1/' "$file" >> ./reports/eslint_issues.json
    first_file=false
  else
    # 后续文件先加逗号,再去掉[]写入
    echo "," >> ./reports/eslint_issues.json
    sed 's/^\[\(.*\)\]$/\1/' "$file" >> ./reports/eslint_issues.json
  fi
done
echo "]" >> ./reports/eslint_issues.json

# 清理临时文件
rm -rf ./reports/temp-lint
  1. 运行脚本
    在Git Bash中执行:
chmod +x merge-lint-results.sh
./merge-lint-results.sh

方案二:自定义Angular CLI Lint目标(更简洁)

通过修改angular.json,让lint一次性扫描所有项目文件,避免逐个项目执行导致的文件覆盖:

  1. 添加自定义lint目标
    在angular.json中,找到根节点下的architect字段,新增lint-all目标:
"architect": {
  "lint-all": {
    "builder": "@angular-eslint/builder:lint",
    "options": {
      "lintFilePatterns": [
        "src/**/*.ts",
        "projects/**/*.ts"
      ],
      "format": "./my-format.js",
      "outputFile": "./reports/eslint_issues.json"
    }
  }
}

注意lintFilePatterns要覆盖所有项目的文件路径,可根据实际目录结构调整。

  1. 执行自定义lint命令
ng run 你的根项目名称:lint-all

替换你的根项目名称为angular.json中defaultProject字段的值。

注意事项

  • 确保my-format.js输出的是标准JSON数组,否则合并时会出现语法错误。
  • 方案二中要确认lintFilePatterns覆盖了所有需要检查的文件,避免遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:45:32