CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-eslint

An AST-based pattern checker for JavaScript that provides comprehensive linting capabilities with configurable rules and autofix support.

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

cli.mddocs/

Command Line Interface

ESLint provides a comprehensive command-line interface for linting JavaScript files and projects. The CLI supports numerous options for configuration, output formatting, and behavior customization.

Capabilities

Basic Usage

# Lint specific files
eslint file1.js file2.js

# Lint with glob patterns
eslint "src/**/*.js"

# Lint and fix issues automatically
eslint --fix "src/**/*.js"

# Use specific configuration file
eslint --config .eslintrc.json "src/**/*.js"

Core Options

Configuration and behavior control options.

# Configuration
--config <path>          # Use specific config file
--no-config-lookup      # Disable config file discovery
--env <environment>     # Enable specific environments

# File Discovery
--ext <extensions>      # Specify file extensions (default: .js)
--ignore-path <path>    # Use specific ignore file
--no-ignore            # Disable .eslintignore and ignore patterns

# Output Control
--format <formatter>    # Output format (default: stylish)
--output-file <path>    # Write output to file instead of stdout
--quiet                # Report errors only (no warnings)
--max-warnings <count> # Exit with error if warnings exceed count

Fix and Repair Options

Automatic code fixing and problem resolution.

# Fixing
--fix                  # Automatically fix problems
--fix-dry-run         # Show fixes without applying them
--fix-type <types>    # Apply fixes for specific problem types

# Fix types: directive, problem, suggestion, layout
--fix-type problem    # Fix only problem-type issues
--fix-type problem,suggestion  # Fix multiple types

Performance and Caching

Options for improving performance and caching results.

# Caching
--cache               # Enable result caching
--cache-file <path>   # Cache file location (default: .eslintcache)
--cache-strategy <strategy>  # Cache strategy: metadata or content

# Performance
--concurrency <number>  # Max concurrent linting processes (default: auto)

Output Formatting

Built-in and custom output formatters.

# Built-in formatters
eslint --format stylish file.js    # Default human-readable format
eslint --format compact file.js    # Compact format
eslint --format json file.js       # JSON format
eslint --format junit file.js      # JUnit XML format
eslint --format checkstyle file.js # Checkstyle XML format
eslint --format tap file.js        # TAP format
eslint --format unix file.js       # Unix format
eslint --format visualstudio file.js  # Visual Studio format
eslint --format table file.js      # Table format

# Custom formatter
eslint --format ./custom-formatter.js file.js
eslint --format @company/eslint-formatter file.js

Debugging and Information

Options for troubleshooting and getting information.

# Information
--version             # Show version number
--help                # Show help information
--env-info           # Show environment information

# Debugging
--debug              # Enable debug mode
--print-config <file>  # Print resolved configuration for file

Special Commands

Special-purpose commands and operations.

# Initialization
eslint --init       # Initialize ESLint configuration (uses @eslint/create-config)

# Configuration inspection
eslint --print-config src/index.js  # Show resolved config for file

# Statistics
eslint --stats src/**/*.js  # Show performance statistics

# Experimental features
eslint --flag <flag> src/**/*.js  # Enable experimental features

Exit Codes

ESLint uses specific exit codes to indicate different conditions.

# Exit codes
0  # No errors found
1  # One or more errors found
2  # Configuration or setup error

Usage Examples

Basic Linting

# Lint all JavaScript files in src directory
eslint src/

# Lint specific file types
eslint --ext .js,.jsx,.ts,.tsx src/

# Lint with specific configuration
eslint --config eslint.config.js src/

Fixing Problems

# Fix all auto-fixable problems
eslint --fix src/

# Preview fixes without applying
eslint --fix-dry-run src/

# Fix only specific types of problems
eslint --fix --fix-type problem,suggestion src/

# Fix and show what was fixed
eslint --fix --format=@eslint/eslintrc src/

Output Formatting

# Save results to file
eslint --format json --output-file results.json src/

# Quiet mode (errors only)
eslint --quiet src/

# Fail on warnings
eslint --max-warnings 0 src/

# Multiple output formats
eslint --format stylish src/ > report.txt
eslint --format json src/ > report.json

Performance Optimization

# Enable caching for faster subsequent runs
eslint --cache src/

# Custom cache location
eslint --cache --cache-file .eslintcache-custom src/

# Control concurrency
eslint --concurrency 4 src/

# Use content-based caching
eslint --cache --cache-strategy content src/

Configuration Management

# Use specific config file
eslint --config .eslintrc.production.json src/

# Disable config file lookup
eslint --no-config-lookup --config inline-config.json src/

# Print effective configuration
eslint --print-config src/index.js

# Show environment info for debugging
eslint --env-info

Advanced Usage

# Lint stdin
echo "var x = 1;" | eslint --stdin --stdin-filename virtual.js

# Ignore specific patterns
eslint --ignore-pattern "build/**" --ignore-pattern "*.min.js" src/

# Multiple configurations
eslint --config base.config.js --config override.config.js src/

# Debug mode with verbose output
eslint --debug src/ 2> debug.log

Integration Examples

Package.json Scripts

{
  "scripts": {
    "lint": "eslint src/",
    "lint:fix": "eslint --fix src/",
    "lint:check": "eslint --max-warnings 0 src/",
    "lint:report": "eslint --format json --output-file eslint-report.json src/"
  }
}

CI/CD Integration

# GitHub Actions / CI environments
eslint --format=@microsoft/eslint-formatter-sarif --output-file eslint-results.sarif src/

# Jenkins integration
eslint --format checkstyle --output-file checkstyle-result.xml src/

# Fail fast in CI
eslint --max-warnings 0 --format compact src/

Pre-commit Hooks

# Git pre-commit hook
#!/bin/sh
npx eslint --fix $(git diff --cached --name-only --diff-filter=ACM | grep '\.js$')

# Lint-staged integration
npx lint-staged

Configuration File Discovery

ESLint searches for configuration files in the following order:

  1. eslint.config.js (flat config, recommended)
  2. eslint.config.mjs
  3. eslint.config.cjs
  4. .eslintrc.js (legacy)
  5. .eslintrc.cjs (legacy)
  6. .eslintrc.yaml (legacy)
  7. .eslintrc.yml (legacy)
  8. .eslintrc.json (legacy)
  9. package.json with eslintConfig property (legacy)

Environment Variables

# Disable configuration file lookup
ESLINT_USE_FLAT_CONFIG=true eslint src/

# Custom cache directory
ESLINT_CACHE_DIR=/tmp/eslint-cache eslint --cache src/

# Debug mode
DEBUG=eslint:* eslint src/

docs

cli.md

configuration.md

eslint-api.md

index.md

linter.md

rule-development.md

rules-types.md

source-code.md

use-at-your-own-risk.md

tile.json