This package provides LeanKit's ESLint configuration as an extensible shared config.
NOTICE: CommonJS Projects If your project uses CommonJS, your ESLint config file must use the
.mjs
extension (e.g.,eslint.config.mjs
) for these configurations to work correctly.
We support many ESLint configurations for your usage.
All the below examples assume that you'll be including the base "eslint-config-leankit" configuration, but you are free to not include that if you wish.
Our default export contains the base of our ESLint legacy rules (ECMAScript 5). It currently requires only eslint
.
npm install eslint eslint-config-leankit --save-dev
- add this to your
eslint.config.js
file:import leankit from "eslint-config-leankit"; export default leankit;
This exports ECMAScript 6+ features and rules. This also only requires eslint
. You will probably want to extend this along with the base leankit
rules.
npm install eslint eslint-config-leankit --save-dev
- add this to your
eslint.config.js
file:import base from "eslint-config-leankit"; import es6 from "eslint-config-leankit/es6"; export default [base, es6];
These rules are specific to React development. It requires eslint
and eslint-plugin-react
.
npm install eslint eslint-plugin-react eslint-config-leankit --save-dev
- add this to your
eslint.config.js
file:import base from "eslint-config-leankit"; import react from "eslint-config-leankit/react"; export default [base, react];
If you are using React and you'd like some Accessibility rules, then a11y
is for you. It requires eslint
and eslint-plugin-jsx-a11y
.
npm install eslint eslint-plugin-jsx-a11y eslint-config-leankit --save-dev
- add this to your
eslint.config.js
file:import base from "eslint-config-leankit"; import a11y from "eslint-config-leankit/a11y"; export default [base, a11y];
This some rules for writing tests using mocha
.
npm install eslint eslint-config-leankit --save-dev
- add this to your
eslint.config.js
file:import base from "eslint-config-leankit"; import test from "eslint-config-leankit/test"; export default [base, test];
This configuration enforces a strict set of JSDoc rules to ensure your code is thoroughly documented. It requires eslint
and eslint-plugin-jsdoc
.
npm install eslint eslint-plugin-jsdoc eslint-config-leankit --save-dev
- add this to your
eslint.config.js
file:import base from "eslint-config-leankit"; import jsdocStrict from "eslint-config-leankit/jsdoc-strict"; export default [base, jsdocStrict];
.
└── eslint.config.js // with export default [base, es6];
import { defineConfig } from "eslint/config";
import js from "@eslint/js";
import leankit from "eslint-config-leankit";
import leankitEs6 from "eslint-config-leankit/es6.js";
export default defineConfig( [
js.configs.recommended,
leankit,
leankitEs6,
{
files: [ "**/*.js", "**/*.cjs", "**/*.mjs" ],
ignores: [
"node_modules/",
".idea/",
".DS_Store",
"*npm-debug.log",
"log/",
"coverage/",
"*config.json",
".nyc_output"
]
}
] );
.
├── client
│ ├── js
│ │ └── eslint.config.js // export default [react];
│ └── spec
│ └── eslint.config.js // export default [test];
│ └── eslint.config.js // export default [es6];
├── server
│ └── spec
│ └── eslint.config.js // export default [test];
└── eslint.config.js // export default leankit;
You can run tests with npm test
.
You can make sure this module lints with itself using npm run lint
.
Using npm link ../eslint-config-leankit
or npm install ../eslint-config-leankit
to test changes locally don't work well with this repo. Instead, use npm pack
which will create a tgz
file (example: eslint-config-leankit-4.5.0.tgz
). From there you can install the packed file into another project (example: npm i ../eslint-config-leankit/eslint-config-leankit-4.5.0.tgz --no-save
). Once installed you can run linting, but it's recommended to remove ESLint's cache first (example: rm .eslintcache && npm run lint
)
eslint-config-leankit > npm pack
eslint-config-leankit > cd ../other-project
other-project > npm i ../eslint-config-leankit/eslint-config-leankit-4.5.0.tgz --no-save
other-project > rm .eslintcache && npm run lint
ESLint 9 introduces a new flat configuration system which replaces the legacy .eslintrc
and similar files. Here are some key points:
- Configuration File: Replace your legacy
.eslintrc.json
or.eslintrc
with aneslint.config.js
file that uses ES module syntax and exports a flat array of configuration objects. - Ignore Files: You can no longer use
.eslintignore
. To ignore files now, please see the official ESLint documentation. - Official Guide: For more details, see the official ESLint Migration Guide.
See also LeanKit's Style Guide and the ESLint config documentation for more information.