OOZOU
與我們聯繫
返回 TIL 列表
ruby on rails

在 GitHub Actions 中讓 Rubocop 與 ESLint 忽略 bundled gems

January 19, 2022

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,你可以在避免靜態程式碼分析誤報的同時,維持高標準的程式碼品質。

#RUBY-ON-RAILS

更多關於 ruby on rails 的筆記

ruby on railsFebruary 10, 2022

用 Pundit Policy 管理 permitted parameters、預設值與各 action 的參數

要管理 permitted params,你可以在你的 policy 中加入 permitted\attributes 和 permitted\attributes\for\#{action},例如

ruby on railsJanuary 31, 2022

在 Turbo 中用 `requestSubmit` 送出表單

Turbo 會監聽 form 上的 submit 事件。因此,用 JS 送出表單時,請一律使用 requestSubmit。

ruby on railsApril 18, 2021

Rails 6、Ruby 3、Bootstrap 5 與 Hotwire

以 Hotwire 延伸 Bootrails 的部落格文章: 所有最新潮的東西(截至我寫這篇 TIL 的時候):

有專案構想嗎?

我們很樂意聆聽您正在打造的產品。

開始對話hello@oozou.com
OOZOU Logo

曼谷 · 新加坡 · 香港

X
Facebook
Instagram
LinkedIn

服務

  • Web 開發
  • AI 代理人與生成式 AI
  • 行動應用開發
  • 數據分析與工程
  • UI/UX 與產品設計
  • 數位轉型

公司

  • 關於我們
  • 職涯
  • 部落格
  • 案例研究
  • Today I Learned
  • 聯繫我們

更多

  • 產業
  • 合作夥伴網絡
© 2026 OOZOU. 版權所有。
隱私政策行為準則反賄賂反貪腐政策