- A set of awesome ESLint + Prettier configs.
- Makes it easier to work with React, Next.js, Node apps.
- This package is intended for use with VS Code, however, can be easily used with any text editors.
This package will automatically detect if you're using React, Next.js, Node (and other in near future), and apply appropriate linting rules. 👌🏼
First installation will take you only a couple of minute, every subsequent should not take more than a minute.
You can install the package 2.a) in repo of the project which will apply the linting only to the project and not other files on your computer or 2.b) on your computer which will apply the linting to all files with the included file extensions on your computer.
Below are the steps to install (click on the step to open the instructions).
1 · VS Code Setup
- Install ESLint extension
- Add below snippet to your User settings:
First try (
⌘Cmd + ,
orCtrl + ,
) → type insettings.json
file → click onEdit in settings.json
. If that doesn't work the file is located in$/Code/User/settings.json
{
// ...
// Run formatter when you save code changes
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
// Disable default formatting (ESLint formatting will be used instead)
"[javascript]": {
"editor.formatOnSave": false
},
"[javascriptreact]": {
"editor.formatOnSave": false
},
}
2.a · RECOMMENDED: Per Project Setup (Local setup)
- Install @ijsto/eslint-config:
this command will auto-detect if you are using yarn by default and prompt you to confirm before proceeding.
npx install-peerdeps --dev @ijsto/eslint-config
- Create an
.eslintrc
file in the root of your project's directory. Paste in the following:
{
"extends": "@ijsto"
}
-
You're done!
-
ESLint will now run and format your code each time you save your file.
2.b · Computer-wide (Global setup)
If you would like to install the config computer-wide (globally) and not on each project, follow the below steps.
- Install @ijsto/eslint-config:
this command will auto-detect if you are using yarn by default and prompt you to confirm before proceeding.
npx install-peerdeps --global @ijsto/eslint-config
- Create a global
.eslintrc
file on your computer:
- MacOS location:
~/.eslintrc
- Windows location:
C:\Users\you\.eslintrc
Paste in the follow to newly created .eslintrc
:
{
"extends": "@ijsto"
}
Some-what relevant: eslint/eslint#15149
If you would like to use this config with TypeScript, all you need to do is:
- Install TypeScript dependencies:
yarn add --dev @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint prettier
- Add the following to
.eslintrc
file
{
// ...other configs
"parser": "@typescript-eslint/parser", // <-- Add this
"plugins": ["@typescript-eslint", /* ...otherPlugins */], // <-- Add this
"extends": [ // <-- `extends` is now an array and not an object
"@ijsto",
"plugin:@typescript-eslint/eslint-recommended", // <-- Add this
"plugin:@typescript-eslint/recommended" // <-- Add this
]
// ...other configs
}
If something doesn't work or you should try manually deleting your node_modules
folder. This usually helps resolving any issues with this config not working.
If you would like to uninstall this eslint-config
, run the below commands:
yarn remove eslint @ijsto/eslint-config
or global (computer-wise)
npm remove eslint @ijsto/eslint-config
yarn global remove eslint @ijsto/eslint-config
or
npm remove --global eslint @ijsto/eslint-config
Did this package help you? Give it a ★ and share with your friends! 🙂
PRs, feature requests or suggestions are most welcome!
If you followed the steps, yet still cannot get ESLint to work, you can try deleting /node_modules
and running yarn
or npm i
depending on which one you use.
- This eslint error can sometimes occur when you have clashing formatters. The easiest solution if to change the default formatter in your VS Code settings to ESLint (tutorial coming soon).
- If this doesn't work for your use-case, feel freet to tweet at @scottagirs or reach out on ijs.to/scottagirs
Thank you for considering to contribute to this project.
We are working on improving the contributing guidelines, for now, here is current TODO list:
- Handle workspaces (see TODO:s in
index.js
file) - Create
CONTRIBUTING.md
file with guidelines