Skip to content

MobileReality/eslint-config

Repository files navigation

@mobile-reality/eslint-config

Version GitHub stars npm total downloads npm week downloads Last master branch commit License


ESLint's configuration of Mobile Reality team.


Table of Contents

Requirements

  • node: ^16.13 || ^18.15.0
  • eslint: ^8.37.0
  • eslint-plugin-prettier: ^4.2.0

Installation and usage for a new project

  1. Install @mobile-reality/eslint-config, eslint, prettier and eslint-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
  2. 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)

Installation and usage for an existing project

  1. Remove all ESLint and prettier dependencies (e.g. eslint, prettier, eslint-plugin-prettier, @typescript-eslint/eslint-plugin etc.) from package.json
  2. Reinstall node_modules (so remove them and install with npm i or yarn install)
  3. Go to the installation step

Override

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',
    },
};

Used packages

License

MIT