eslint-config-facilis v1.0.4
ESLint Setup with Prettier
Updated 2019-03-14
What it does
- Lints JavaScript based on the latest standards
- Fixes issues and formatting errors with Prettier
- Lints + Fixes inside of html script tags
- Lints + Fixes React based eslint airbnb, and industry standard
- View the rules here
Installing
You need to have a project created with create React App or boiler plate that contains a
package.json
. If not, create apackage.json
withnpm init
.Then we need to install everything needed by the facilis eslint config:
npx install-peerdeps --dev eslint-config-facilis
- Create a
.eslintrc
file int the root of your project's directory (same level as package.json). Your.eslintrc
file should look like this:
{
"extends": [
"facilis"
]
}
- Add two scripts to your
package.json
to lint and/or fix:
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
},
Now you can manually lint your code by running npm run lint
and fix all fixable issues with npm run lint:fix
. You probably want your editor to do this though.
Settings
We created the eslint-config-facilis to be used by the team. If there are changes that we want to make for all projects, these should be made within the eslint-config-facilis eslint settings so that all developers are in sync.
However, if you want to overwrite eslint or prettier settings, you can add rules in your .eslintrc file. The ESLint rules go directly under "rules" while prettier options go under "prettier/prettier". Note that prettier rules overwrite anything in the config (trailing comma, and single quote), so you'll need to include those as well. Example:
{
"extends": [
"facilis"
],
"rules": {
"no-console": 2,
"prettier/prettier": [
"error",
{
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 120,
"tabWidth": 8,
}
]
}
}
Setting up VS Code
It is convenient for your editor to lint and fix for you. Here are the instructions for VS Code:
Install the ESLint package (Note: If you do have the Prettier extension installed, you may need to set it to disabled).
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:
// auto-save configs
"editor.formatOnSave": true,
// turn it off for JS and JSX, we will do this via eslint
"[javascript]": {
"editor.formatOnSave": false
},
"[javascriptreact]": {
"editor.formatOnSave": false
},
// tell the ESLint plugin to run on save
"eslint.autoFixOnSave": true,
// Optional BUT IMPORTANT: If you have the prettier extension enabled for other languages like CSS and HTML, turn it off for JS since we are doing it through Eslint already
// "prettier.disableLanguages": ["javascript", "javascriptreact"],
- Start your code and check that your linting and prettier settings are working.
Example, add a div tag that is incorrectly spaced. Press Ctrl+S
to save and it should get realigned properly.
To open lint output window in VS Code press Ctrl + Shift + M
, the problems window should appear in a bottom pane.