---
title: "GitHub Actions で Rubocop と ESLint にバンドルされた gem を無視させる"
description: "Rails プロジェクトでは、GitHub Actions で gem を vendor ディレクトリにインストールして、以降の実行でキャッシュできるようにすることがよくあります。"
canonical: https://oozou.com/til/ignore-bundled-gems-for-rubocop-and-eslint-in-github-actions-154
locale: ja
date: 2022-01-19
topic: ruby-on-rails
---

# GitHub Actions で Rubocop と ESLint にバンドルされた gem を無視させる

> Rails プロジェクトでは、GitHub Actions で gem を vendor ディレクトリにインストールして、以降の実行でキャッシュできるようにすることがよくあります。

Published: 2022-01-19 · Topic: [ruby on rails](https://oozou.com/ja/til-topics/ruby-on-rails) ([markdown](https://oozou.com/ja/til-topics/ruby-on-rails.md))

Rails プロジェクトでは、GitHub Actions で gem を vendor ディレクトリにインストールして、以降の実行でキャッシュできるようにすることがよくあります。

アクション内でコードリンターを使う場合は、誤検出を防ぐために `vendor/bundle/\*` を除外する必要があります  

ESLint の場合は ignorePatterns で設定できます

```json
// ./.eslintrc.json
{
  "ignorePatterns": [
    "vendor/bundle/*"
  ]
}
```

Rubocop の場合は AllCops 設定で除外できます

```yaml
# ./.rubocop.yml
AllCops:
  Exclude:
    - 'vendor/**/*'
```

# コードリンターでバンドルされた gem を無視することの重要性

ソフトウェア開発では、高いコード品質を維持することが不可欠です。コードリンターは静的コード解析を行うことでこれを支援するツールで、潜在的なエラーを検出し、一貫したコーディングスタイルを強制できます。ただし、GitHub Actions のような継続的インテグレーション環境でリンターを使う場合は、誤検出を避けるために正しく設定することが重要です。

バンドルされた gem は多くの場合 vendor ディレクトリに格納される外部のコード依存で、適切に除外しないとコードリンターに検出されてしまうことがあります。これらのディレクトリを無視することで、リンターを外部ライブラリではなく自分のソースコードに集中させ、コード解析の正確性を保てます。

# バンドルされた gem を除外するリンターの設定

ESLint を使う JavaScript プロジェクトでは、.eslintrc.json ファイルの ignorePatterns 設定を通じて、リンターが vendor/bundle/\* ディレクトリを無視するように設定できます。これにより自分のコードだけがチェックされるようになり、余計なノイズなしにコード品質を向上できます。

```
// ./.eslintrc.json
{
  "ignorePatterns": [
    "vendor/bundle/*"
  ]
}
```

同様に、Rubocop を使う Ruby プロジェクトでは、.rubocop.yml 設定ファイルの AllCops 以下に Exclude ルールを追加することで vendor ディレクトリを除外できます。これにより、静的コード解析を実際のソースコードに集中させられます。

```
# ./.rubocop.yml
AllCops:
  Exclude:
    - 'vendor/**/*'
```

コードリンターがバンドルされた gem を除外するように設定することで、静的コード解析での誤検出を避けながら、高い水準のコード品質を維持できます。  

[#RUBY-ON-RAILS](https://oozou.com/til-topics/ruby-on-rails)

---

Contact OOZOU: hello@oozou.com · +66 2544 0000 · https://oozou.com/ja/contact

More for AI agents: https://oozou.com/llms.txt · every page has a markdown twin at its URL plus ".md"
