{"id":13547983,"url":"https://github.com/abhijithvijayan/eslint-config","last_synced_at":"2025-10-28T08:32:12.920Z","repository":{"id":57094158,"uuid":"255226666","full_name":"abhijithvijayan/eslint-config","owner":"abhijithvijayan","description":"My shared ESLint \u0026 Prettier configuration for projects","archived":false,"fork":false,"pushed_at":"2024-01-30T22:40:25.000Z","size":208,"stargazers_count":12,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-12T15:17:32.075Z","etag":null,"topics":["es6","eslint","eslint-config","javascript","npm","prettier","reactjs","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/@abhijithvijayan/eslint-config","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abhijithvijayan.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["abhijithvijayan"],"patreon":"abhijithvijayan","open_collective":"abhijithvijayan","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":"abhijithvijayan","otechie":null,"lfx_crowdfunding":null,"custom":["https://www.buymeacoffee.com/abhijithvijayan","https://www.paypal.me/iamabhijithvijayan"]}},"created_at":"2020-04-13T03:57:12.000Z","updated_at":"2022-06-15T15:15:42.000Z","dependencies_parsed_at":"2024-06-18T20:44:37.976Z","dependency_job_id":"3a3c48eb-1bea-472f-a37d-32c88ccf83d4","html_url":"https://github.com/abhijithvijayan/eslint-config","commit_stats":{"total_commits":252,"total_committers":10,"mean_commits":25.2,"dds":"0.16666666666666663","last_synced_commit":"d427d6c6185e67729218076ef68c422a91fe1f64"},"previous_names":["abhijithvijayan/eslint-prettier-config"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhijithvijayan%2Feslint-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhijithvijayan%2Feslint-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhijithvijayan%2Feslint-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhijithvijayan%2Feslint-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abhijithvijayan","download_url":"https://codeload.github.com/abhijithvijayan/eslint-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238495729,"owners_count":19481914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["es6","eslint","eslint-config","javascript","npm","prettier","reactjs","typescript"],"created_at":"2024-08-01T12:01:04.150Z","updated_at":"2025-10-28T08:32:12.580Z","avatar_url":"https://github.com/abhijithvijayan.png","language":"JavaScript","funding_links":["https://github.com/sponsors/abhijithvijayan","https://patreon.com/abhijithvijayan","https://opencollective.com/abhijithvijayan","https://issuehunt.io/r/abhijithvijayan","https://www.buymeacoffee.com/abhijithvijayan","https://www.paypal.me/iamabhijithvijayan","https://www.patreon.com/abhijithvijayan","https://www.buymeacoffee.com/abhijithvijayan'"],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eeslint-config\u003c/h1\u003e\n\u003cp align=\"center\"\u003eMy shared ESLint \u0026 Prettier configuration for projects\u003c/p\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@abhijithvijayan/eslint-config\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@abhijithvijayan/eslint-config\" alt=\"NPM\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://travis-ci.org/abhijithvijayan/eslint-config\"\u003e\n    \u003cimg src=\"https://travis-ci.org/abhijithvijayan/eslint-config.svg?branch=main\" alt=\"Travis Build\" /\u003e\n  \u003c/a\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://david-dm.org/abhijithvijayan/eslint-config\"\u003e\n    \u003cimg src=\"https://img.shields.io/david/abhijithvijayan/eslint-config.svg?colorB=orange\" alt=\"DEPENDENCIES\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/abhijithvijayan/eslint-config/blob/main/license\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/abhijithvijayan/eslint-config.svg\" alt=\"LICENSE\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/intent/tweet?text=Check%20out%20eslint-config%21%20by%20%40_abhijithv%0A%0AA%20shared%20ESLint%20%26%20Prettier%20configuration%20with%20TypeScript%20%26%20React%20support.%20https%3A%2F%2Fgithub.com%2Fabhijithvijayan%2Feslint-config%20%0A%0A%23javascript%20%23react%20%23typescript%20%23eslint\"\u003e\n     \u003cimg src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social\" alt=\"TWEET\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003ch3 align=\"center\"\u003e🙋‍♂️ Made by \u003ca href=\"https://twitter.com/_abhijithv\"\u003e@abhijithvijayan\u003c/a\u003e\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n  Donate:\n  \u003ca href=\"https://www.paypal.me/iamabhijithvijayan\" target='_blank'\u003e\u003ci\u003e\u003cb\u003ePayPal\u003c/b\u003e\u003c/i\u003e\u003c/a\u003e,\n  \u003ca href=\"https://www.patreon.com/abhijithvijayan\" target='_blank'\u003e\u003ci\u003e\u003cb\u003ePatreon\u003c/b\u003e\u003c/i\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href='https://www.buymeacoffee.com/abhijithvijayan' target='_blank'\u003e\n    \u003cimg height='36' style='border:0px;height:36px;' src='https://bmc-cdn.nyc3.digitaloceanspaces.com/BMC-button-images/custom_images/orange_img.png' border='0' alt='Buy Me a Coffee' /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003chr /\u003e\n\n❤️ it? ⭐️ it on [GitHub](https://github.com/abhijithvijayan/eslint-config/stargazers)\n\n## Features\n\nThe config includes these plugins by default:\n\n- [import](https://github.com/benmosher/eslint-plugin-import)\n- [jsx-a11y](https://www.npmjs.com/package/eslint-plugin-jsx-a11y)\n- [prettier](https://github.com/prettier/eslint-plugin-prettier)\n- [react](https://github.com/yannickcr/eslint-plugin-react)\n- [react-hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks)\n- [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint)\n- [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) from [v2.2.3](https://github.com/abhijithvijayan/eslint-config/issues/3#issuecomment-653062266)\n\n## Breaking Changes\n\n- Uses `@babel/eslint-parser` instead of `babel-eslint` from `v2.6.1` (See [migration guide](https://git.io/JtPOV))\n- Uses Eslint v7 from v2.x.x (See [migration guide](https://git.io/JtPOo))\n- Dropped usage `eslint-config-airbnb` in favour of `@abhijithvijayan/eslint-config-airbnb`\n\n## Installation\n\n```\n# npm\nnpx install-peerdeps @abhijithvijayan/eslint-config --dev\n\n# yarn\nnpx install-peerdeps @abhijithvijayan/eslint-config --dev --yarn\n```\n\nThis will install the required `peerDependencies` for eslint\n\nNote: Due to [this bug](https://github.com/eslint/eslint/issues/3458), you\nneed to have all the associated plugins installed as `devDependencies` to make things work.\n\n## Usage\n\nAdd extends of the preferred base config to your `.eslintrc.json`:\n\n```json\n{\n  \"extends\": [\n    \"@abhijithvijayan/eslint-config\"\n  ],\n  \"rules\": {\n    // your overrides\n  }\n}\n```\n\n## Other configs\n\nThis config also exposes `react`, `node`, and `typescript` configs that I use often.\n\n### TypeScript\n\nTo use the ts configuration, install the `TypeScript` compiler:\n\n```\n# npm\nnpm install typescript --save-dev\n\n# yarn\nyarn add --dev typescript\n```\n\n`.eslintrc.json:`\n\n```json\n{\n  \"extends\": [\n    \"@abhijithvijayan/eslint-config/typescript\"\n  ],\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.json\"\n  },\n  \"rules\": {\n    // your overrides\n  },\n}\n```\n\n### Node.js\n\nIt is to be used in combination with the base config (recommended)\n\n`.eslintrc.json:`\n\n```json\n{\n  \"extends\": [\n    \"@abhijithvijayan/eslint-config\", // or \"@abhijithvijayan/eslint-config/typescript\",\n    \"@abhijithvijayan/eslint-config/node\"\n  ],\n  \"parserOptions\": {\n    // Uncomment both if you are using typescript with node\n    // \"project\": \"./tsconfig.json\",\n    // \"sourceType\": \"module\" // https://github.com/mysticatea/eslint-plugin-node#-configs\n  },\n  \"rules\": {\n    // Uncomment if you are using typescript with node(ES Modules)\n    // \"node/no-unsupported-features/es-syntax\": [\"error\", {\n    //   \"ignores\": [\"modules\"]\n    // }],\n\n    // your other overrides\n  },\n}\n```\n\n### React\n\nIt is to be used in combination with the base config (recommended)\n\n`.eslintrc.json:`\n\n```json\n{\n  \"extends\": [\n    \"@abhijithvijayan/eslint-config\", // or \"@abhijithvijayan/eslint-config/typescript\",\n    \"@abhijithvijayan/eslint-config/react\"\n  ],\n  \"parserOptions\": {\n    // Uncomment if you are using typescript configuration\n    // \"project\": \"./tsconfig.json\"\n  },\n  \"rules\": {\n    // your overrides\n  }\n}\n```\n\n#### With Create React App\n\nOpen your `package.json` and replace `\"extends\": \"react-app\"` with above config or remove `extends` entry and create a separate `.eslintrc.json` file(recommended)\n\n### Optional\n\n- To lint your files, you can add the following scripts to your `package.json`:\n\n    ```json\n    \"scripts\": {\n        // other scripts\n        \"lint\": \"eslint . --ext .js,.ts,.tsx\",\n        \"lint:fix\": \"eslint . --ext .js,.ts,.tsx --fix\"\n    },\n    ```\n\n- Add a `.eslintignore` file with my defaults\n\n    ```\n    node_modules\n    dist            # typescript default output directory\n    .yarn\n    .pnp.js\n\n    # other directories to skip linting\n  ```\n\n\u003chr /\u003e\n\n## Override\n\nIf you'd like to override `eslint` or `prettier` settings, you can add the rules in your `.eslintrc.json` file.\n\nThe ESLint rules go directly under `\"rules\"` while prettier options go under `\"prettier/prettier\"`.\n\nNote: overriding `prettier` rules(trailing comma, single quote, etc) require including all existing rules as well.\n\n```json\n{\n  \"extends\": [\"@abhijithvijayan/eslint-config\"],\n  \"rules\": {\n    \"no-console\": \"off\",\n    \"react/jsx-props-no-spreading\": \"off\",\n    \"prettier/prettier\": [\n      \"error\",\n      {\n        \"bracketSpacing\": true,\n        \"jsxBracketSameLine\": false,\n        \"printWidth\": 120,\n        \"semi\": true,\n        \"singleQuote\": true,\n        \"tabWidth\": 4,\n        \"trailingComma\": \"all\",\n        \"useTabs\": false,\n        \"proseWrap\": \"always\"\n      }\n    ]\n  }\n}\n```\n\n## With VS Code\n\nTo show lint errors in your editor, you'll need to configure your editor.\n\n1. Install the [ESLint package](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)\n2. Install the [Prettier package](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)\n3. Now we need to setup some VS Code settings via `Code/File` → `Preferences` → `Settings`. It's easier to enter these settings while editing the `settings.json` file, so click the `{}` icon in the top right corner:\n\n    ```json\n    \"editor.formatOnSave\": true,\n    \"[javascript]\": {\n      \"editor.formatOnSave\": false\n    },\n    \"[javascriptreact]\": {\n      \"editor.formatOnSave\": false\n    },\n    \"[typescript]\": {\n      \"editor.formatOnSave\": false\n    },\n    \"[typescriptreact]\": {\n      \"editor.formatOnSave\": false\n    },\n    \"editor.codeActionsOnSave\": {\n        \"source.fixAll\": true,\n        \"source.fixAll.eslint\": false\n    },\n    \"prettier.disableLanguages\": [\"javascript\", \"javascriptreact\", \"typescript\", \"typescriptreact\"],\n    ```\n\n## Bugs\n\nPlease file an issue [here](https://github.com/abhijithvijayan/eslint-config/issues/new) for bugs, missing documentation, or unexpected behavior.\n\n## Credits\n\nThis was initially a fork of [eslint-config-wesbos](https://www.npmjs.com/package/eslint-config-wesbos). Thanks [wesbos](https://twitter.com/wesbos)!\n\n## License\n\nMIT © [Abhijith Vijayan](https://abhijithvijayan.in)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhijithvijayan%2Feslint-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhijithvijayan%2Feslint-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhijithvijayan%2Feslint-config/lists"}