@lcbase/eslint-config-reactjs
v1.10.0
Published
Shared Eslint Reactjs config
Downloads
2
Readme
Eslint Config for ReactJs project
This package provides Eslint's Config for ReactJs project.
Note 1: Only support the new Eslint flat config.
Note 2: This config is using the Airbnb eslint config.
Usage
1. Install package
pnpm add -D @lcbase/eslint-config-reactjs eslint
2. Add config to your eslint.config.js
. Please read more about Eslint Flat Config
import { baseReactConfig } from '@lcbase/eslint-config-reactjs';
export default baseReactConfig;
3. Add script to your package.json
.
{
"scripts": {
"lint": "eslint \"src/**/*.{js,jsx}*\"",
"lint:fix": "pnpm lint --fix"
}
}
4. Combine with @lcbase/prettier-config packages
pnpm add -D prettier @lcbase/prettier-config
{
"prettier": "@lcbase/prettier-config",
"scripts": {
"lint": "eslint \"src/**/*.{js,jsx}*\"",
"lint:fix": "pnpm lint --fix",
"prettify": "prettier src --check",
"prettify:fix": "prettier src --write",
"format": "pnpm prettify:fix && pnpm lint:fix"
}
}
5. Configuration your VScode
.
In root your project's folder. Create .vscode
folder with structure:
.vscode
- settings.json
{
"eslint.experimental.useFlatConfig": true,
// if mono-repo remove below line comment
// "eslint.workingDirectories": [{ "pattern": "./apps/*/" }, { "pattern": "./packages/*/" }],
"eslint.options": {
"overrideConfigFile": "eslint.config.js"
},
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
}
6. Setup git hooks
- Install packages and global setup
husky
,lint-staged
.
pnpm add -D husky lint-staged
npx husky install
npm pkg set scripts.prepare="husky install"
npx husky add .husky/pre-commit "npx lint-staged"
- Add the following to your
package.json
:
{
"scripts": {
"prepare": "husky install"
},
"lint-staged": {
"*.{js,cjs,mjs,jsx,cjsx,mjsx,ts,mts,cts,tsx,mtsx,ctsx}": ["pnpm format"],
"*.{json,css,md,html}": ["pnpm prettify:fix"]
}
}
Extends
You can extends this config by:
import { extendBaseReactConfig } from '@lcbase/eslint-config-reactjs';
const config = extendBaseReactConfig({
files: (Linter.FlatConfigFileSpec | Linter.FlatConfigFileSpec[])[] | undefined, // files that you want to lint
extendConfig: Linter.FlatConfig | Linter.FlatConfig[] | undefined, // your override extends config here
});
export default config;