This set of rules is released open-source for anyone to use. It is meant to be a strict, aerated configuration.
✅ is always installed, ◻️ is optional.
- Languages:
- ✅ Javascript
- ◻️ Typescript
- ◻️ with rxjs
- Frameworks:
- ✅ Bare node/browser
- ◻️ Nest
- ◻️ Angular (ℹ️ more infos)
- Plugins: (checked are always used)
- Angular:
@knodes/eslint-config/angular
@knodes/eslint-config/angular/jest
- For libs:
@knodes/eslint-config/angular/lib
@knodes/eslint-config/angular/lib/jest
- Nest:
@knodes/eslint-config/nest
- Bare:
- Pure JS:
@knodes/eslint-config/js
- JS + TS:
@knodes/eslint-config/ts
- JS + TS + rxjs:
@knodes/eslint-config/ts-rxjs
- Pure JS:
You can also use configuration fragments from @knodes/eslint-config/config-fragments/*
. See the directory on GitHub.
For any preset, you must at least install base dependencies.
npm install --save-dev @knodes/eslint-config eslint eslint-plugin-import eslint-plugin-jsdoc eslint-plugin-prefer-arrow eslint-plugin-sort-export-all eslint-plugin-eslint-comments
If you're using Typescript, install also @typescript-eslint
related dependencies.
npm install --save-dev @typescript-eslint/eslint-plugin @typescript-eslint/parser
npm install --save-dev @knodes/eslint-config eslint \
eslint-plugin-import eslint-plugin-jsdoc eslint-plugin-prefer-arrow eslint-plugin-sort-export-all eslint-plugin-eslint-comments \
@typescript-eslint/eslint-plugin @typescript-eslint/parser \
@angular-eslint/eslint-plugin @angular-eslint/eslint-plugin-template @angular-eslint/template-parser
See sample
.eslintrc.js
for Typescriptmodule.exports = { env: { /* See https://eslint.org/docs/user-guide/configuring#specifying-environments. es2020 is enabled by default */ }, extends: '@knodes/eslint-config/ts', parserOptions: { project: './tsconfig.json', }, };
See sample
.eslintrc.js
for Javascriptmodule.exports = { env: { /* See https://eslint.org/docs/user-guide/configuring#specifying-environments. es2020 is enabled by default */ }, extends: '@knodes/eslint-config/js', };
*.{j,t}s
: Project configuration files. Light lint rules are applied. It includes.eslintrc.js
.**
index.[jt]s{x,}
: Barrel files, only exporting other source files*.[jt]s{x,}
: Source files*.{spec,test}.[jt]s{x,}
: Unit test files. Configured for jest by default, unless framework use a different test runner__mocks__/**/*.[jt]s{x,}
: Module mocks for unit teststest-utils/**/*.[jt]s{x,}
: Various testing utilities