Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

An opinionated collection of ESLint rules used by GitHub.

License

NotificationsYou must be signed in to change notification settings

github/eslint-plugin-github

Repository files navigation

Installation

npm install --save-dev eslint eslint-plugin-github

Setup

Legacy Configuration (.eslintrc)

Addgithub to your list of plugins in your ESLint config.

JSON ESLint config example:

{"plugins": ["github"]}

Extend the configs you wish to use.

JSON ESLint config example:

{"extends": ["plugin:github/recommended"]}

Flat Configuration (eslint-config.js)

Import theeslint-plugin-github, and extend any of the configurations usinggetFlatConfigs() as needed like so:

importgithubfrom'eslint-plugin-github'exportdefault[github.getFlatConfigs().browser,github.getFlatConfigs().recommended,github.getFlatConfigs().react,  ...github.getFlatConfigs().typescript,{files:['**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}'],ignores:['eslint.config.mjs'],rules:{'github/array-foreach':'error','github/async-preventdefault':'warn','github/no-then':'error','github/no-blur':'error',},},]

Note

If you configured thefilenames/match-regex rule, please note we have adapted the match regex rule intoeslint-plugin-github as the originaleslint-filenames-plugin is no longer maintained and needed a flat config support update.

Please update the name togithub/filenames-match-regex, and note, the default rule is kebab case or camelCase with one hump. For custom configuration, such as matching for camelCase regex, here's an example:

'github/filenames-match-regex': ['error', '^([a-z0-9]+)([A-Z][a-z0-9]+)*$'],

The available configs are:

  • internal
    • Rules useful for github applications.
  • browser
    • Useful rules when shipping your app to the browser.
  • react
    • Recommended rules for React applications.
  • recommended
    • Recommended rules for every application.
  • typescript
    • Useful rules when writing TypeScript.

Component mapping (Experimental)

Note: This is experimental and subject to change.

Thereact config includes rules which target specific HTML elements. You may provide a mapping of custom components to an HTML element in youreslintrc configuration to increase linter coverage.

By default, these eslint rules will check the "as" prop for underlying element changes. If your repo uses a different prop name for polymorphic components provide the prop name in youreslintrc configuration underpolymorphicPropName.

{"settings": {"github": {"polymorphicPropName":"asChild","components": {"Box":"p","Link":"a"      }    }  }}

This config will be interpreted in the following way:

  • All<Box> elements will be treated as ap element type.
  • <Link> without a definedas prop will be treated as aa.
  • <Link as='button'> will be treated as abutton element type.

Rules

💼 Configurations enabled in.
🔍 Set in thebrowser configuration.
🔐 Set in theinternal configuration.
⚛️ Set in thereact configuration.
✅ Set in therecommended configuration.
🔧 Automatically fixable by the--fix CLI option.
❌ Deprecated.

Name                                       Description💼🔧
a11y-aria-label-is-well-formattedenforce [aria-label] text to be formatted as you would visual text.⚛️
a11y-no-generic-link-textdisallow generic link text
a11y-no-title-attributedisallow using the title attribute⚛️
a11y-no-visually-hidden-interactive-elementenforce that interactive elements are not visually hidden⚛️
a11y-role-supports-aria-propsenforce that elements with explicit or implicit roles defined contain onlyaria-* properties supported by thatrole.⚛️
a11y-svg-has-accessible-namerequire SVGs to have an accessible name⚛️
array-foreachenforcefor..of loops overArray.forEach
async-currenttargetdisallowevent.currentTarget calls inside of async functions🔍
async-preventdefaultdisallowevent.preventDefault calls inside of async functions🔍
authenticity-tokendisallow usage of CSRF tokens in JavaScript🔐
filenames-match-regexrequire filenames to match a regex naming convention
get-attributedisallow wrong usage of attribute names🔍🔧
js-class-nameenforce a naming convention for js- prefixed classes🔐
no-blurdisallow usage ofElement.prototype.blur()🔍
no-d-nonedisallow usage thed-none CSS class🔐
no-datasetenforce usage ofElement.prototype.getAttribute instead ofElement.prototype.datalist🔍
no-dynamic-script-tagdisallow creating dynamic script tags
no-implicit-buggy-globalsdisallow implicit global variables
no-inner-htmldisallowElement.prototype.innerHTML in favor ofElement.prototype.textContent🔍
no-innerTextdisallowElement.prototype.innerText in favor ofElement.prototype.textContent🔍🔧
no-thenenforce usingasync/await syntax over Promises
no-useless-passivedisallow marking a event handler as passive when it has no effect🔍🔧
prefer-observersdisallow poorly performing event listeners🔍
require-passive-eventsenforce marking high frequency event handlers as passive🔍
unescaped-html-literaldisallow unescaped HTML literals🔍

About

An opinionated collection of ESLint rules used by GitHub.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors51

Languages


[8]ページ先頭

©2009-2025 Movatter.jp