ESLint's configuration of Mobile Reality team.
- Requirements
- Installation and usage for a new project
- Installation and usage for an existing project
- Override
- Used packages
- License
node: ^16.13 || ^18.15.0
eslint: ^8.37.0
eslint-plugin-prettier: ^4.2.0
-
Install
@mobile-reality/eslint-config
,eslint
,prettier
andeslint-plugin-prettier
:yarn add -D @mobile-reality/eslint-config eslint@^8.37.0 prettier eslint-plugin-prettier
or
npm i -D @mobile-reality/eslint-config eslint@^8.37.0 prettier eslint-plugin-prettier
-
Add to your root
.eslintrc.js
file:module.exports = { root: true, env: {}, // env config is based on project scope eg is it only node or node+browser extends: [ '@mobile-reality/eslint-config/XXX', // base config based on project scope, XXX described below 'plugin:prettier/recommended', // to include prettier rules in eslint ], // if jest is used jest config should be added to overrides section overrides: [ { files: ['test/**/*.test.ts'], // glob pattern has to match test files extends: ['@mobile-reality/eslint-config/configs/jest'], }, ], };
XXX is a preconfigured eslint config for MR projects. Supported configs with required peerDependencies (which must be installed in project):
- node-javascript
- node-typescript (@typescript-eslint/eslint-plugin@~5.31.0 @typescript-eslint/parser@~5.31.0)
- react-javascript (eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-simple-import-sort)
- react-typescript (@typescript-eslint/eslint-plugin@~5.31.0 @typescript-eslint/parser@~5.31.0 eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-simple-import-sort)
- react-native (@typescript-eslint/eslint-plugin@~5.31.0 @typescript-eslint/parser@~5.31.0 eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-simple-import-sort eslint-plugin-react-native)
- Remove all
ESLint
andprettier
dependencies (e.g.eslint
,prettier
,eslint-plugin-prettier
,@typescript-eslint/eslint-plugin
etc.) from package.json - Reinstall
node_modules
(so remove them and install withnpm i
oryarn install
) - Go to the installation step
You can override rules by adding a rule to the rules section e.g.:
module.exports = {
root: true,
extends: ['@mobile-reality'],
rules: {
'no-console': 'off',
},
};