npm i -D eslint eslint-config-fmal
Add to your .eslintrc
{
"extends": "fmal"
}
To use the Babel rule set:
npm i -D eslint eslint-config-fmal @babel/eslint-parser
Add this to your .eslintrc
:
{
"extends": "fmal/babel"
}
To use the flow rule set:
npm i -D eslint eslint-config-fmal @babel/eslint-parser eslint-plugin-flowtype eslint-plugin-flowtype-errors
Add this to your .eslintrc
:
{
"extends": "fmal/flow"
}
To use the TypeScript rule set:
npm i -D eslint eslint-config-fmal @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-import-resolver-typescript
Add this to your .eslintrc
:
{
"extends": "fmal/typescript"
}
To use the React rule set:
npm i -D eslint eslint-config-fmal eslint-plugin-react eslint-plugin-react-hooks
Add this to your .eslintrc
:
{
"extends": "fmal/react"
}
To use the eslint-plugin-import
rule set:
npm i -D eslint eslint-config-fmal
Add this to your .eslintrc
:
{
"extends": "fmal/import"
}
To use the Jest rule set:
npm i -D eslint eslint-config-fmal eslint-plugin-jest
Add this to your .eslintrc
:
{
"extends": "fmal/jest"
}
To use the Mocha rule set:
npm i -D eslint eslint-config-fmal
Add this to your .eslintrc
:
{
"extends": "fmal/mocha"
}
To use the eslint-plugin-css-modules
rule set:
npm i -D eslint eslint-config-fmal eslint-plugin-css-modules
Add this to your .eslintrc
:
{
"extends": "fmal/css-modules"
}
You can use any combination of these shareable configs.
Install the dependencies:
npm i -D eslint eslint-config-fmal @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": [
"fmal",
"fmal/babel",
"fmal/import",
"fmal/typescript",
"fmal/react",
"fmal/jest",
"fmal/css-modules"
],
"rules": {
// custom tweaks
}
}
This 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: eslint/eslint#3458
.eslintrc.js
// Patch ESLint module resolution to find shared configs' plugins
require('eslint-config-fmal/patch/modern-module-resolution');
module.exports = {
extends: ['fmal']
};