@aarongoldenthal/eslint-config-standard
Summary
Custom standard ESLint configuration for all projects. Includes configurations
for eslint
, @eslint-community/eslint-plugin-eslint-comments
(formerly
eslint-plugin-eslint-comments
), eslint-plugin-jest
, eslint-plugin-jsdoc
,
eslint-plugin-n
(formerly eslint-plugin-node
), eslint-plugin-playwright
,
eslint-plugin-promise
, eslint-plugin-sonarjs
, and eslint-plugin-unicorn
.
This package defines all required configurations as dependencies
so they are
installed and do not have to be defined in each project.
Per recommended best practices, the following configurations include overrides
so they are only applicable to a subset of files:
-
jest-config
: applicable to files matching['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[jt]s?(x)']
, which is the default filter for Jest test files. -
playwright-config
: applicable to files matching['**/*.pwtest.[jt]s']
, which differentiates them from Jest test files.
The configuration as-defined includes a number of formatting rules. The
eslint-config-prettier
package is included as well, and can be added to the
config if prettier
is also being used so it takes priority for formatting.
There is also an esm-config
included with overrides for projects using ES
modules instead of Common JS modules.
Usage
There is a recommended
configuration with all plugin configurations enabled
except esm-config
(but including prettier
). To configure .eslintrc.json
with this configuration:
{
"extends": ["@aarongoldenthal/eslint-config-standard/recommended"]
}
To configure .eslintrc.json with individual plugins, use the appropriate subset of the options below:
{
"extends": [
"@aarongoldenthal/eslint-config-standard/eslint-comments-config.js",
"@aarongoldenthal/eslint-config-standard/jest-config",
"@aarongoldenthal/eslint-config-standard/jsdoc-config",
"@aarongoldenthal/eslint-config-standard/node-config",
"@aarongoldenthal/eslint-config-standard/playwright-config",
"@aarongoldenthal/eslint-config-standard/promise-config",
"@aarongoldenthal/eslint-config-standard/sonarjs-config",
"@aarongoldenthal/eslint-config-standard/unicorn-config",
"@aarongoldenthal/eslint-config-standard",
"@aarongoldenthal/eslint-config-standard/esm-config",
"prettier"
]
}
Notes:
- If used, the
@aarongoldenthal/eslint-config-standard
config should be included after any other@aarongoldenthal/eslint-config-standard/*
configurations exceptesm-config
so those settings take precedence. - If used, the
esm-config
should be configured after all functional rules to ensure the overridden settings take precedence. - If used, the
prettier
should be included last to take priority in disabling the applicable rules from all other configurations.