eslint-config-love is a highly opinionated and strict ESLint shareable configuration specifically designed for TypeScript projects, prioritizing code safety and explicit patterns over conciseness. It currently stands at version 153.0.0, indicative of its extremely rapid development cycle where even minor rule additions or dependency updates are considered breaking changes, leading to frequent major version bumps (often weekly or bi-weekly). This configuration differentiates itself by intentionally avoiding formatting rules, instead advocating for dedicated code formatters like Prettier. It also refrains from duplicating checks already enforced by TypeScript's strict mode and steers clear of library- or framework-specific rules, maintaining a focus on core JavaScript and TypeScript linting. It integrates rules from various sources including ESLint itself, `@typescript-eslint`, `@eslint-community/eslint-comments`, `n`, `promise`, and `import` plugins.
npm install eslint-config-loveVerified import paths — ran on the pinned version, not inferred.
This quickstart shows how to configure ESLint in a CommonJS project using dynamic import and provides a basic tsconfig.json necessary for the configuration's type-aware rules.
Always check the release notes and changelog on GitHub for specific migration instructions before upgrading to a new major version.
Review and refactor promise chains to ensure they always include a `.catch()` or are otherwise handled, and update `eslint-plugin-promise` if managed separately.
Review your TypeScript code for new linting errors related to rules like `@typescript-eslint/strict-void-return`, `@typescript-eslint/no-useless-default-assignment`, or `@typescript-eslint/no-unused-private-class-members` and refactor as necessary or disable specific rules if they do not fit your project's needs.
Ensure you have a `tsconfig.json` file in your project root or configure `parserOptions.project` in your `.eslintrc` to point to your `tsconfig.json` files.
Ensure a valid `tsconfig.json` file exists in your project's root or specified location, and that the `include` glob covers all files ESLint should process.
Run `npm install --save-dev eslint-config-love` and ensure your ESLint configuration file correctly references `love` in the `extends` array or similar.
For CommonJS configurations, use a dynamic import: `const { default: love } = await import('eslint-config-love')` inside an `async` function for your ESLint config.Install the required peer dependencies: `npm install --save-dev eslint typescript`.