Lint-a-lot

May 19, 2026 · View on GitHub

Lint-a-lot is an opinionated ESLint and Stylelint configuration for Angular projects using modern Flat Config. Also this project contains a .editorconfig that should be used.

Table of Contents

Get started

Install

Add dependency

npm i --save-dev @j1n/lint-a-lot

This lib supports .cjs and .mjs.

ESLint

In eslint.config.js:

CommonJS

const lal = require("@j1n/lint-a-lot");

module.exports = [
  ...lal.esLintConfig.configs.angular.tsRecommended,
  ...lal.esLintConfig.configs.shared.testingVitestRecommended,
  ...lal.esLintConfig.configs.angular.htmlRecommended,
];

Module

import lal from '@j1n/lint-a-lot';

export default [
  ...lal.esLintConfig.configs.angular.tsRecommended,
  ...lal.esLintConfig.configs.shared.testingVitestRecommended,
  ...lal.esLintConfig.configs.angular.htmlRecommended,
]

Check if you have a builder for eslint in your angular.json:

{
  "lint": {
    "builder": "@angular-eslint/builder:lint",
    "options": {
      "lintFilePatterns": [
        "src/**/*.ts",
        "src/**/*.html",
        "e2e/**/*.ts"
      ]
    }
  }
}

Stylelint

In stylelint.config.js:

CommonJS

const lal = require("@j1n/lint-a-lot");

module.exports = lal.stylelintConfig;

Module

import lal from '@j1n/lint-a-lot';

export default lal.stylelintConfig;

Editorconfig

Move the .editorconfig file to the root of you project.

IDE-setup

See IDE-setup.

Test locally

If you want to test this library you can use npm pack. This will result in the creation of a .tgz-file.

  1. Go to the project where you want to use lint-a-lot.
  2. Open package.json
  3. Add lint-a-lot to devDependencies -> json "@j1n/lint-a-lot": "file:<PATH_TO_YOUR_TGZ_FILE>",
  4. Remove node_modules-Dir
  5. Remove package-lock.json
  6. Run npm i
  7. Restart IDE (especially vscode)

Publish a new version

  • apply your changes
  • merge your branch containing the changes to main
  • create new branch from main with bump: version versionumber oldversionumber new
  • run cz bump to increase version
  • run git push origin --tags
  • merge to main
  • start publish pipeline manually

Rules overview

Overview of rules and used plugins/configs.

Es-lint angular.tsRecommended and angular.htmlRecommended

Custom rules

Extended packages

Stylelint

⚠️ CAUTION: stylelint-no-unsupported-browsers-features is normally only a css linting plugin. It configured to ignore most of the rules that are overlapping with scss - if you think this lib would be better without this plugin let me know