An ESLint config that enforces best practices and prevents possible problems for JavaScript.
It is meant as an extention to @jm/eslint-config-base, but can be used without. By default it does not include any rules with regard to styling and formatting.
The idea is to use prettier for styling and so it does not include rules that are conflicting with prettier.
ts-for-js
, The, default, base configuration that does not include any rules with regard to stylingformatting
, Extention to thets-for-js
config that does include styling rules but only those that are not covered by prettier.relaxed
, Base configuration with some relaxed rules. Better suitable for personal or small projects.formatting-relaxed
, Extention to thets-for-js-relaxed
configuration.
# inside your project's working tree
npm install @jm/eslint-config-ts-for-js --save-dev
Example .eslintrc.json
with only the base config
{
"extends": ["@jm/ts-for-js"]
}
Example .eslintrc.json
with base config extended with formatting rules
{
"extends": ["@jm/ts-for-js", "@jm/eslint-config-ts-for-js/formatting"]
}
Recommended:
{
"extends": [
"@jm/base",
"@jm/eslint-config-base/formatting",
"@jm/ts-for-js",
"@jm/eslint-config-ts-for-js/formatting"
]
}
Recommended, relaxed:
{
"extends": [
"@jm/relaxed",
"@jm/eslint-config-base/formatting-relaxed",
"@jm/eslint-config-ts-for-js/relaxed",
"@jm/eslint-config-ts-for-js/formatting-relaxed"
]
}
Some rules require type information. Therefore you need to add the
parserOptions
property to your ESLint configuration:
{
"extends": [
"@jm/base",
"@jm/eslint-config-base/formatting",
"@jm/ts-for-js",
"@jm/eslint-config-ts-for-js/formatting"
],
"parserOptions": {
"project": true,
"tsconfigRootDir": "__dirname"
},
"root": true
}
For additional information see: Linting with Type Information