How to add ESlint to javascript or node project
ESlint is the best tool that we can use to ensure a consistent code style. In this article, you will learn how to add and set up elsint on your nodejs or javascript project.
First of all, install ESlint using npm:
npm install eslint
To set up ESlint, we should run the command below:
npm init @eslint/config
And choose:
To check syntax, find problems, and enforce code style.
CommonJS (require/exports)
None of these
If you don't use TypeScript yet :) choose No, if use choose Yes.
Choose Node
I recommend you choose: Use a popular style guide.
Choose Standard:
I recommend choosing Javascript but be free to choose whatever you want:
Choose Yes:
I choose npm here:
When the installation is complete, you will see .eslintrc.js file at the root of your project.
If you are using jest, please install ESlint for jest:
npm i eslint-plugin-jest
Then, add lint and lint-fix command to the scripts section in the package.json file:
{
"name": "nodejs_app",
"version": "0.0.1",
"description": "",
"main": "index.js",
"jest": {
"clearMocks": true,
"roots": [
"__tests__"
],
"setupFiles": [
"<rootDir>/jest.setup.js"
],
"verbose": true
},
"scripts": {
"lint": "./node_modules/.bin/eslint .",
"lint-fix": "./node_modules/.bin/eslint --fix",
"test": "./node_modules/.bin/jest -i"
},
"author": "",
"license": "ISC",
"devDependencies": {
"eslint": "^8.19.0",
"eslint-config-standard": "^17.0.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-n": "^15.2.3",
"eslint-plugin-promise": "^6.0.0",
"jest": "^28.1.1"
},
"dependencies": {
"eslint-plugin-jest": "^26.5.3"
}
}
Finally, make sure that your .eslintrc.js file looks like this:
module.exports = {
env: {
browser: true,
commonjs: true,
es2021: true,
'jest/globals': true
},
extends: [
'standard'
],
parserOptions: {
ecmaVersion: 'latest'
},
plugins: ['jest'],
rules: {
'jest/no-disabled-tests': 'warn',
'jest/no-focused-tests': 'error',
'jest/no-identical-title': 'error',
'jest/prefer-to-have-length': 'warn',
'jest/valid-expect': 'error'
}
}
Now you can run ESlint from the root folder of your project:
npm run lint