CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-oxlint

High-performance JavaScript and TypeScript linter written in Rust, designed as part of the Oxc (Oxidation Compiler) suite of tools

Overview
Eval results
Files

configuration.mddocs/

Configuration

Oxlint uses ESLint-compatible JSON configuration files with additional oxlint-specific features. Configuration files support comments and provide JSON schema validation for IDE integration.

Configuration File Format

Default Configuration File

Oxlint automatically looks for .oxlintrc.json in the current working directory. You can specify a custom configuration file using the --config option.

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "categories": {
    "correctness": "warn",
    "suspicious": "warn",
    "pedantic": "off"
  },
  "env": {
    "browser": true,
    "node": true,
    "es6": true
  },
  "extends": ["./base-config.json"],
  "globals": {
    "myGlobal": "readonly",
    "myWritableGlobal": "writable"
  },
  "ignorePatterns": ["dist/**", "**/*.d.ts"],
  "overrides": [
    {
      "files": ["*.test.js", "*.spec.js"],
      "rules": {
        "no-unused-vars": "off"
      }
    }
  ],
  "plugins": ["typescript", "react", "import"],
  "rules": {
    "eqeqeq": "error",
    "no-debugger": "warn",
    "prefer-const": ["error", { "destructuring": "all" }]
  },
  "settings": {
    "react": {
      "version": "detect"
    },
    "import/resolver": {
      "typescript": true
    }
  }
}

Configuration Properties

Categories

Control entire rule categories with a single setting.

{
  "categories": {
    "correctness": "error" | "warn" | "off",
    "suspicious": "error" | "warn" | "off",
    "pedantic": "error" | "warn" | "off",
    "perf": "error" | "warn" | "off",
    "style": "error" | "warn" | "off",
    "nursery": "error" | "warn" | "off",
    "restriction": "error" | "warn" | "off"
  }
}

Environment Configuration

Enable predefined global variables for different environments.

{
  "env": {
    "browser": boolean,
    "node": boolean,
    "es6": boolean,
    "es2017": boolean,
    "es2020": boolean,
    "es2021": boolean,
    "es2022": boolean,
    "worker": boolean,
    "amd": boolean,
    "mocha": boolean,
    "jasmine": boolean,
    "jest": boolean,
    "phantomjs": boolean,
    "jquery": boolean,
    "qunit": boolean,
    "prototypejs": boolean,
    "shelljs": boolean,
    "meteor": boolean,
    "mongo": boolean,
    "applescript": boolean,
    "nashorn": boolean,
    "serviceworker": boolean,
    "atomtest": boolean,
    "embertest": boolean,
    "webextensions": boolean,
    "greasemonkey": boolean,
    "builtin": boolean
  }
}

Configuration Inheritance

Extend from other configuration files with relative path resolution.

{
  "extends": string[]
}

Global Variables

Define additional global variables and their mutability.

{
  "globals": {
    [key: string]: "readonly" | "writable" | "off"
  }
}

Ignore Patterns

Specify glob patterns for files and directories to exclude from linting.

{
  "ignorePatterns": string[]
}

File-Specific Overrides

Apply different rules to specific files or patterns.

{
  "overrides": [
    {
      "files": string[],
      "excludedFiles": string[],
      "env": EnvironmentConfig,
      "globals": GlobalsConfig,
      "rules": RulesConfig,
      "settings": SettingsConfig
    }
  ]
}

Plugin Configuration

Enable or configure specific linting plugins.

{
  "plugins": [
    "eslint",               // Core ESLint rules (default)
    "typescript",           // @typescript-eslint rules (default)
    "@typescript-eslint",   // Alternative name for typescript
    "react",                // React-specific rules
    "react-hooks",          // React Hooks rules
    "import",               // ES6 import/export rules
    "import-x",             // Alternative name for import
    "unicorn",              // Unicorn rules (enabled by default)
    "oxc",                  // OXC-specific rules (enabled by default)
    "deepscan",             // Alternative name for oxc
    "jsdoc",                // JSDoc comment rules
    "jest",                 // Jest testing rules
    "vitest",               // Vitest testing rules
    "jsx-a11y",             // JSX accessibility rules
    "nextjs",               // Next.js rules
    "react-perf",           // React performance rules
    "promise",              // Promise usage rules
    "node",                 // Node.js rules
    "regex",                // Regex rules
    "vue"                   // Vue.js rules
  ]
}

Rule Configuration

Configure individual linting rules with severity levels and options.

{
  "rules": {
    [ruleName: string]:
      | "off" | "warn" | "error"
      | [("off" | "warn" | "error"), ...any[]]
  }
}

Rule Severity Levels:

  • "off" or 0 - Disable the rule
  • "warn" or 1 - Rule violations produce warnings (exit code 0 unless --deny-warnings)
  • "error" or 2 - Rule violations produce errors (exit code 1)

Rule Configuration with Options: Many rules accept additional configuration options:

{
  "rules": {
    "prefer-const": ["error", { "destructuring": "all" }],
    "no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }]
  }
}

Plugin Settings

Configure plugin-specific settings that affect rule behavior.

{
  "settings": {
    "react": {
      "createClass": string,
      "pragma": string,
      "fragment": string,
      "version": string | "detect",
      "flowVersion": string
    },
    "import/resolver": {
      "node": {
        "extensions": string[]
      },
      "typescript": boolean | {
        "alwaysTryTypes": boolean,
        "project": string | string[]
      }
    },
    "import/ignore": string[],
    "import/extensions": string[],
    "import/core-modules": string[],
    "import/external-module-folders": string[]
  }
}

Configuration Discovery

Oxlint discovers configuration files using the following priority order:

  1. Command-line specified config (--config path/to/config.json)
  2. .oxlintrc.json in current directory
  3. .oxlintrc.json in parent directories (unless --disable-nested-config)
  4. Built-in default configuration

Schema Validation

Oxlint provides JSON Schema validation for configuration files:

{
  "$schema": "./node_modules/oxlint/configuration_schema.json"
}

This enables IDE features like autocompletion, validation, and documentation tooltips.

Configuration Debugging

Print Resolved Configuration

oxlint --print-config

Outputs the final resolved configuration without performing linting.

Disable Nested Configuration

oxlint --disable-nested-config

Prevents automatic discovery of configuration files in parent directories.

Common Configuration Patterns

TypeScript Project

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "plugins": ["typescript"],
  "env": {
    "browser": true,
    "es6": true
  },
  "rules": {
    "@typescript-eslint/no-unused-vars": "error",
    "@typescript-eslint/explicit-function-return-type": "warn"
  }
}

React Project

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "plugins": ["react", "jsx-a11y"],
  "env": {
    "browser": true,
    "es6": true
  },
  "settings": {
    "react": {
      "version": "detect"
    }
  },
  "rules": {
    "react/jsx-uses-react": "error",
    "react/jsx-uses-vars": "error",
    "jsx-a11y/alt-text": "warn"
  }
}

Node.js Project

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "plugins": ["node"],
  "env": {
    "node": true,
    "es6": true
  },
  "rules": {
    "node/no-missing-import": "error",
    "node/no-unpublished-require": "warn"
  }
}

Testing Configuration

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "plugins": ["jest"],
  "overrides": [
    {
      "files": ["**/*.test.js", "**/*.spec.js"],
      "env": {
        "jest": true
      },
      "rules": {
        "jest/expect-expect": "error",
        "jest/no-disabled-tests": "warn"
      }
    }
  ]
}

Install with Tessl CLI

npx tessl i tessl/npm-oxlint

docs

cli.md

configuration.md

index.md

nodejs-api.md

output-formats.md

plugins.md

rules.md

tile.json