@happ/eslint-plugin v0.0.1
@happ/eslint-plugin
Best all in eslint config.
Config for javascript, typescript, angular, jest, cypress, json, markdown
Included best plugins. Such as unicorn, sonarjs, import, promise
Higly recommended to use in pair with @happ/prettier-config
Content
Install
- Install
pnpm i -D @happ/eslint-plugin
Configs
Javascript
- Update
.eslintrc.json
:
{
...
overrides: [
{
extends: ["plugin:@happ/javascript"],
},
],
...
}
By default javascript rules used for
.js
and.jsx
files. If you want to change it, just set"filex": ["..."]
Typescript
Important. Use it only in pair with javascript config
- Update
tsconfig.*.json
:
{
compilerOptions: {
strictNullChecks: true,
}
}
- Update
.eslintrc.json
:
{
...
overrides: [
{
extends: ["plugin:@happ/typescript"],
},
],
...
}
By default javascript rules used for
.ts
and.tsx
files. If you want to change it, just set"filex": ["..."]
Angular
- Update
.eslintrc.json
:
{
...
overrides: [
{
extends: ["plugin:@happ/angular"],
},
],
...
}
By default javascript rules used for
.component.ts
and.service.ts
files. If you want to change it, just set"filex": ["..."]
Angular template
Important. Use it only in pair with angular config
- Update
.eslintrc.json
:
{
...
overrides: [
{
extends: ["plugin:@happ/angular-template"],
},
],
...
}
By default javascript rules used for
.component.html
files. If you want to change it, just set"filex": ["..."]
Cypress
- Update
.eslintrc.json
:
{
...
overrides: [
{
extends: ["plugin:@happ/cypress"],
},
],
...
}
By default javascript rules used for
.spec.ts
and.spec.js
files. If you want to change it, just set"filex": ["..."]
Jest
- Update
.eslintrc.json
:
{
...
overrides: [
{
extends: ["plugin:@happ/jest"],
},
],
...
}
By default javascript rules used for
.spec.ts
and.spec.js
files. If you want to change it, just set"filex": ["..."]
Json
- Update
.eslintrc.json
:
{
...
overrides: [
{
extends: ["plugin:@happ/json"],
},
],
...
}
By default javascript rules used for
.json
files. If you want to change it, just set"filex": ["..."]
Markdown
- Update
.eslintrc.json
:
{
...
overrides: [
{
extends: ["plugin:@happ/markdown"],
},
],
...
}
By default javascript rules used for
.md
files. If you want to change it, just set"filex": ["..."]
Prettier:
- Install
pnpm i -D @happ/prettier-config
- Update
prettier.config.js
:
module.exports = {
...require("@happ/prettier-config"),
};
- Update
.eslint.json
{
...
overrides: [
{
extends: ["plugin:@happ/prettier"],
},
],
...
}
Nx
If you are using nx and wanna to use
nx lint
you have to setup executor
- Update
workspace.json
:
{
...
"lint": {
"executor": "@nrwl/linter:eslint",
"options": {
"lintFilePatterns": [
"libs/LIB_NAME/**/*.js",
"libs/LIB_NAME/**/*.ts",
"libs/LIB_NAME/**/*.md",
"libs/LIB_NAME/**/*.json"
],
"ignorePath": "libs/LIB_NAME/.eslintignore"
}
}
...
}
- Create
libs/LIB_NAME/.eslintignore
with files, which don't need to lint
Autolint
Webstorm
Base
- Open preferences:
- MacOS:
⌘ + ,
- Windows
Ctrl + Alt + S
- MacOS:
- Move to
Languages & Frameworks -> JavaScript -> Code Quality Tools -> Eslint
- Set
true
forRun eslint --fix on save
checkbox
For json
- Open preferences:
- MacOS:
⌘ + ,
- Windows
Ctrl + Alt + S
- MacOS:
- Move to
Tools -> File Watchers
- Click on
+
to create a new one - Fill the fields:
- Name:
JSON
- File Type:
JSON
- Program:
/YOUR_DIR/node_modules/.bin/eslint
- Arguments:
$FilePath$ --fix
- Output path to regresh:
$FilePath$ --fix
- Working directory:
YOUR_DIR
- Name:
- Click on
Save
to save the changes
If you have tsconfig.*.json you have to move it to
JSON
file type:
Preferences
->Editor
->File Types
- Find
JSON
type and addtsconfig.app.json
and e.t.c. to the list
Visual stuido code
- Open preferences:
- MacOS:
⌘ + ,
- Windows
Ctrl + Alt + S
- MacOS:
- Move to JSON format
- Update preferences
{
...
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
},
...
}
If you have files which generated automatically (
jest.config.js
orjest.preset.js
) better to add them to.eslintignore
Used plugins:
- Javascript plugins
- Typescript plugins
- Angular plugins
- Jest plugins
- Cypress plugins
- Json plugins
- Markdown plugins
Javascript plugins
- eslint-plugin-unicorn
- eslint-plugin-sonarjs
- eslint-plugin-compat
- eslint-plugin-es
- eslint-plugin-deprecate
- eslint-plugin-deprecation
- eslint-plugin-markdown
- eslint-plugin-import
- @html-eslint/eslint-plugin
- eslint-plugin-eslint-comments
- eslint-plugin-promise
- eslint-plugin-array-func
- eslint-plugin-prefer-arrow
- eslint-plugin-autofix
- eslint-plugin-sort-keys-fix
- eslint-plugin-no-unsanitized
- @getify/eslint-plugin-proper-arrows
Typescript plugins
Angular plugins
Cypress plugins
Jest plugins
Json plugins
Markdown plugins
Plugins to check
- eslint-plugin-boundaries
- eslint-plugin-no-constructor-bind
- eslint-plugin-no-inferred-method-name
- eslint-plugin-no-secrets
- eslint-plugin-security
- eslint-plugin-xss
- eslint-plugin-filenames
- eslint-plugin-simple-import-sort
- eslint-plugin-switch-case
- eslint-plugin-const-case
- eslint-formatter-github
- eslint-nibble
- eslint-formatter-friendly
- esprint
- eslint-plugin-putout
Incompatible plugins
eslint-plugin-jsonc
provides parser which conficlt with another libraries
eslint-plugin-jsonc
provides a lot of autofixable rules, so it prefered
3 years ago