@envsa/eslint-config

ESLint configuration for @envsa/shared-config.
Overview
It's a shared ESLint config, plus a command-line tool envsa-eslint
to perform ESLint-related project initialization, linting, and fixing.
[!IMPORTANT]
You can use this package on its own, but it's recommended to use @envsa/shared-config
instead for a single-dependency and single-package approach to linting and fixing your project.
This package is included as a dependency in @envsa/shared-config
, which also automatically invokes the command line functionality in this package via its envsa
command
Setup
To use just this ESLint config in isolation:
-
Install the .npmrc
in your project root. This is required for correct PNPM behavior:
pnpm dlx @envsa/repo-config init
-
Add the package:
pnpm add -D @envsa/eslint-config
pnpm dlx @envsa/typescript-config init
-
Add the starter eslint.config.ts
config file to your project root, and add any overrides you'd like:
pnpm exec envsa-eslint init
Usage
The ESLint binary should be picked up automatically by VS Code plugins.
You can call it directly, or use the script bundled with the config.
Integrate with your package.json
scripts as you see fit, for example:
{
"scripts": {
"lint": "eslint-config check",
"fix": "eslint-config fix"
}
}
CLI
Command: envsa-eslint
Envsa's ESLint shared configuration tools.
This section lists top-level commands for envsa-eslint
.
Usage:
envsa-eslint <command>
Command | Argument | Description |
---|
init | | Initialize by copying starter config files to your project root. |
lint | [files..] | Lint your project with ESLint. Matches files below the current working directory by default. |
fix | [files..] | Fix your project with ESLint. Matches files below the current working directory by default. |
print-config | [file] | Print the effective ESLint configuration. Package-scoped by default, file-scoped if a file argument is provided. Use @eslint/config-inspector for a more detailed view. |
Option | Description | Type |
---|
--help
-h | Show help | boolean |
--version
-v | Show version number | boolean |
See the sections below for more information on each subcommand.
Subcommand: envsa-eslint init
Initialize by copying starter config files to your project root.
Usage:
envsa-eslint init
Option | Description | Type |
---|
--help
-h | Show help | boolean |
--version
-v | Show version number | boolean |
Subcommand: envsa-eslint lint
Lint your project with ESLint. Matches files below the current working directory by default.
Usage:
envsa-eslint lint [files..]
Positional Argument | Description | Type | Default |
---|
files | Files or glob pattern to lint. | array | "." |
Option | Description | Type |
---|
--help
-h | Show help | boolean |
--version
-v | Show version number | boolean |
Subcommand: envsa-eslint fix
Fix your project with ESLint. Matches files below the current working directory by default.
Usage:
envsa-eslint fix [files..]
Positional Argument | Description | Type | Default |
---|
files | Files or glob pattern to fix. | array | "." |
Option | Description | Type |
---|
--help
-h | Show help | boolean |
--version
-v | Show version number | boolean |
Subcommand: envsa-eslint print-config
Print the effective ESLint configuration. Package-scoped by default, file-scoped if a file argument is provided. Use @eslint/config-inspector
for a more detailed view.
Usage:
envsa-eslint print-config [file]
Positional Argument | Description | Type |
---|
file | File or glob pattern to TK. | string |
Option | Description | Type |
---|
--help
-h | Show help | boolean |
--version
-v | Show version number | boolean |
Notes
Regrettably the eslint-config init --location package
option is not supported due to ESLint 9's deprecation of support for putting configuration in package.json
. See ESLint discussion thread 18131.
Origins
This config is a heavily modified variation on Anthony Fu's @antfu/eslint-config. This package is a somewhat leaner approach intended to work with other tools wrapped behind a monolithic CLI instead of handling everything on its own. It mainly leverages the factory / type generation implementation from the original repo, which itself builds on Kevin Deng's @sxzz/eslint-config.
References
Credits
Eric Mika is the author of the original @kitschpatrol/shared-config project on which this is based.
License
MIT © Liam Rella