ESLint shareable config to enforce strict conventions and good code quality.
npm install eslint-config-conventions
ESLint shareable config to enforce strict conventions and good code quality.
eslint-config-conventions is a ESLint configuration to enforce strict conventions and good code quality. It supports both JavaScript and TypeScript.
This configuration is mostly for catching bugs and code-quality so it is recommended to use it with Prettier for a consistent code style, it works with any .prettierrc.json configuration.
More information about formatting rules vs code-quality rules can be found on Prettier vs. Linters.
Node.js >= 20.11.0
``sh`
npm install --save-dev \
eslint@^9.22.0 \
eslint-plugin-promise@^7.2.1 \
eslint-plugin-unicorn@^62.0.0 \
eslint-plugin-import-x@^4.6.1 \
globals@^17.0.0 \
typescript@^5.9.3 \
typescript-eslint@^8.32.0 \
eslint-config-conventions@latest
Dependencies are:
- ESLint
- ESLint Plugins
- eslint-plugin-promise
- eslint-plugin-unicorn
- eslint-plugin-import-x
- globals
- TypeScript
- typescript-eslint: tooling which enables ESLint to support TypeScript.
- This package: eslint-config-conventions
#### eslint.config.js
`js
import { defineConfig } from "eslint/config"
import configConventions from "eslint-config-conventions"
export default defineConfig(...configConventions, {
files: ["/.ts", "/.tsx"],
languageOptions: {
parser: typescriptESLint.parser,
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
})
`
#### Configuration with Prettier (recommended)
`sh
npm install --save-dev prettier
That's all! No need to update the
eslint.config.js configuration.We discourage usage of eslint-config-prettier and eslint-plugin-prettier, as
eslint-config-conventions doesn't include any stylistic rules, and including these packages has several drawbacks (listed in Integrating with Linters) and brings no benefits for this configuration.####
package.json`json
{
"scripts": {
"lint:eslint": "eslint . --max-warnings 0",
"lint:prettier": "prettier . --check"
}
}
`$3
`sh
node --run lint:eslint
or to apply automatic fixes to code
node --run lint:eslint -- --fixValidate code formatting in all supported languages by Prettier
node --run lint:prettier
`$3
`json
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"extends": ["node_modules/eslint-config-conventions/.oxlintrc.json"]
}
``Anyone can help to improve the project, submit a Feature Request, a bug report or even correct a simple spelling mistake.
The steps to contribute can be found in the CONTRIBUTING.md file.