eslint-config-powel
ESLint configuration presets for Powel projects.
Usage
Common
npm i -D eslint eslint-config-powel
Add to your .eslintrc
{
"extends": "powel"
}
Babel
To use the Babel rule set:
npm i -D eslint eslint-config-powel @babel/eslint-parser
Add this to your .eslintrc
:
{
"extends": "powel/babel"
}
Flow
To use the flow rule set:
npm i -D eslint eslint-config-powel @babel/eslint-parser eslint-plugin-flowtype eslint-plugin-flowtype-errors
Add this to your .eslintrc
:
{
"extends": "powel/flow"
}
TypeScript
To use the TypeScript rule set:
npm i -D eslint eslint-config-powel @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-import-resolver-typescript
Add this to your .eslintrc
:
{
"extends": "powel/typescript"
}
React
To use the React rule set:
npm i -D eslint eslint-config-powel eslint-plugin-react eslint-plugin-react-hooks
Add this to your .eslintrc
:
{
"extends": "powel/react"
}
Import
To use the eslint-plugin-import
rule set:
npm i -D eslint eslint-config-powel eslint-plugin-import
Add this to your .eslintrc
:
{
"extends": "powel/import"
}
Jest
To use the Jest rule set:
npm i -D eslint eslint-config-powel eslint-plugin-jest
Add this to your .eslintrc
:
{
"extends": "powel/jest"
}
Mocha
To use the Mocha rule set:
npm i -D eslint eslint-config-powel
Add this to your .eslintrc
:
{
"extends": "powel/mocha"
}
css-modules
To use the eslint-plugin-css-modules
rule set:
npm i -D eslint eslint-config-powel eslint-plugin-css-modules
Add this to your .eslintrc
:
{
"extends": "powel/css-modules"
}
Composition
You can use any combination of these presets.
Install the dependencies:
npm i -D eslint eslint-config-powel eslint-plugin-import @babel/eslint-parser @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-import-resolver-typescript eslint-plugin-react eslint-plugin-jest eslint-plugin-css-modules
.eslintrc
:
{
"extends": [
"powel",
"powel/babel",
"powel/import",
"powel/typescript",
"powel/react",
"powel/jest",
"powel/css-modules"
],
"rules": {
}
}
Patch
Our shareable config uses rules from external plugins such as eslint-plugin-prettier
.
This patch improves how ESLint loads plugins when working for example in a monorepo,
see: https://github.com/eslint/eslint/issues/3458
.eslintrc.js
require('eslint-config-powel/patch/modern-module-resolution');
module.exports = {
extends: ['powel']
};