Shared ESLint config for my projects.
(Lints both JavaScript & TypeScript projects.)
$ npm install --save-dev eslint-config-oy
.eslintrc.json
in TypeScript project:
{
"extends": [
"eslint-config-oy/ts"
]
}
.eslintrc.json
in JavaScript project:
{
"extends": [
"eslint-config-oy"
]
}
-
Install
eslint
extension for VSCode. -
Add files below in the project's
.vscode
directory and paste related contents:.vscode/extensions.json
:{ "recommendations": [ "dbaeumer.vscode-eslint" ] }
.vscode/tasks.json
:{ "version": "2.0.0", "tasks": [ { "type": "npm", "script": "lint", "problemMatcher": ["$eslint-stylish"], "label": "npm: lint", "detail": "" } ] }
.vscode/settings.json
:{ "eslint.validate": [ "typescript", "typescriptreact" ] }
-
index.js
is eslint config for JavaScript projects. -
ts.js
is eslint config for TypeScript projects; and extends fromindex.js
. -
If
@typescript-eslint
has an override rule of an eslint rule; first make sure you turn off the eslint rule ints.js
.{ quotes: "off", '@typescript-eslint/quotes': [ 'error', 'single', { avoidEscape: true, allowTemplateLiterals: true } ], }
-
If a rule works the same way for both JavaScript and TypeScript, add the rule's value (configuration) in
_common.js
and reference in bothindex.js
andts.js
.// _common.js { QUOTES: [ 'error', 'single', { avoidEscape: true, allowTemplateLiterals: true } ], // ... } // index.js { quotes: common.QUOTES, // ... } // ts.js { quotes: 'off', '@typescript-eslint/quotes': common.QUOTES, // ... }