在 GitHub Actions 中让 Rubocop 与 ESLint 忽略 bundled gems
Rails 项目在 GitHub actions 中通常会把 gems 安装到 vendor 目录,方便在后续运行时使用缓存。
如果你在 action 里跑代码 linter,就需要排除 vendor/bundle/\*,以免出现误报
ESLint 可以通过 ignorePatterns 来配置
// ./.eslintrc.json
{
"ignorePatterns": [
"vendor/bundle/*"
]
}
Rubocop 则可以通过 AllCops 配置来排除
# ./.rubocop.yml
AllCops:
Exclude:
- 'vendor/**/*'
在代码 linter 中忽略 bundled gems 的重要性
在软件开发中,保持较高的代码质量至关重要。代码 linter 通过静态代码分析来帮你实现这一点:它能发现潜在错误,并强制统一的代码风格。不过,在 GitHub Actions 这类持续集成环境里使用 linter 时,配置得当、避免误报同样重要。
Bundled gems 通常放在 vendor 目录下,属于外部代码依赖,如果不好好排除掉,就可能被代码 linter 挑出问题。忽略这些目录可以让 linter 专注于你自己的源代码,而不是外部库,从而保证代码分析结果的准确性。
设置 linter 排除 bundled gems
如果是使用 ESLint 的 JavaScript 项目,你可以在 .eslintrc.json 文件里用 ignorePatterns 配置,让 linter 忽略 vendor/bundle/* 目录。这样就只会检查你自己的代码,在没有多余干扰的前提下提升代码质量。
// ./.eslintrc.json
{
"ignorePatterns": [
"vendor/bundle/*"
]
}
同样,如果是使用 Rubocop 的 Ruby 项目,你可以在 .rubocop.yml 配置文件的 AllCops 下面加一条 Exclude 规则来排除 vendor 目录。这能让静态代码分析聚焦在你真正的源代码上。
# ./.rubocop.yml
AllCops:
Exclude:
- 'vendor/**/*'
通过配置代码 linter 排除 bundled gems,你可以在避免静态代码分析误报的同时,保持高标准的代码质量。