This configuration integrates ESLint and TypeScript ESLint, built to ensure clean, consistent, and maintainable code in JavaScript and TypeScript projects.
-
Feedback Loops: In DevOps, feedback loops are essential. Realtime linting gives developers instant insight, allowing faster fixes and smoother workflows. So, configure your IDE to provide linting feedback as you type.
-
Code Consistency: Linting ensures uniform coding standards across the team, reducing errors and enhancing collaboration by maintaining clarity and readability.
All linting rules are defined in rules.js. This configuration offers a strong foundation suitable for most projects, promoting code quality from the start while remaining flexible for customization.
# Check if your code passes lint rules
npm run lint
# Fix what can be auto-fixed
npm run fix
- Install the necessary dependencies:
npm install @krauters/eslint-config --save-dev
- Add a config file
eslint.config.js
to the root of your project with the following contents,
// eslint.config.js
import eslintConfig from '@krauters/eslint-config'
export default eslintConfig
// eslint.config.js
const eslintConfig = require('@krauters/eslint-config')
module.exports = eslintConfig
- Add these npm scripts to your package.json,
{
...
"scripts": {
"test": "npm run lint",
"lint": "npx eslint src/**",
"fix": "npm run lint -- --fix"
}
}
- Update your README to show off your linting setup,
## Lint
This package uses [@krauters/eslint-config](https://github.com/krauters/eslint-config).
```zsh
# Check if your code follows the rules
npm run lint
# Fix what can be auto-fixed
npm run fix
```
- Now, let’s try it out.
npm run lint
npm run fix
Want to test this linting config locally between two repos? Easy.
- Repo1 is the ESLint config repo.
- Repo2 is a JS/TS project using Repo1.
- Clone both repos.
- Link 'em up. From the root of Repo1, run:
npm link
- Then in Repo2, do this:
npm link @krauters/eslint-config
- When you’re done testing, unlink it with,
npm unlink @krauters/eslint-config
To control the behavior of how this package gets it's tsconfig file, you can set the following environment variables:
ESLINT_DEBUG
: Enables detailed debug logging. Set this to any truthy value, e.g.,1
ortrue
.ESLINT_TSCONFIG
: Overrides the default target file being searched. Defaults totsconfig.eslint.json
.ESLINT_START_DIR
: Specifies the starting directory for the search. Defaults to the current working directory (process.cwd()
).ESLINT_TSCONFIG_FALLBACK
: Sets a fallback file to use if the target file is not found. Defaults totsconfig.json
.
To troubleshoot your ESLint configuration, use the following commands:
# Print the full ESLint config for a specific file that you want to lint
npx eslint --print-config test/auth-service.test.ts | grep tsconfig
# Enable debug logging while running ESLint
ESLINT_DEBUG=true npx eslint .
The goal of this project is to continually evolve and improve its core features, making it more efficient and easier to use. Development happens openly here on GitHub, and we’re thankful to the community for contributing bug fixes, enhancements, and fresh ideas. Whether you're fixing a small bug or suggesting a major improvement, your input is invaluable.
This project is licensed under the ISC License. Please see the LICENSE file for more details.
Thanks for spending time on this project.