High-performance JavaScript and TypeScript linter written in Rust, designed as part of the Oxc (Oxidation Compiler) suite of tools
Oxlint features a comprehensive plugin system that provides specialized linting rules for different frameworks, libraries, and coding standards. Plugins can be enabled or disabled through both command-line options and configuration files.
Oxlint plugins are built-in modules that provide additional linting rules beyond the core JavaScript/TypeScript rules. Each plugin focuses on specific domains like frameworks (React, Vue), testing libraries (Jest, Vitest), or coding standards (accessibility, performance).
These plugins are enabled by default and can be disabled if not needed:
Configuration:
{
"plugins": ["eslint"]
}Core ESLint rules for JavaScript linting (always enabled).
# Disable unicorn plugin
oxlint --disable-unicorn-pluginConfiguration:
{
"plugins": ["unicorn"]
}Provides modern JavaScript best practices and code quality rules.
# Disable oxc unique rules
oxlint --disable-oxc-pluginConfiguration:
{
"plugins": ["oxc"]
// or alternative name
"plugins": ["deepscan"]
}Oxlint-specific rules and optimizations not found in other linters.
# Disable TypeScript plugin
oxlint --disable-typescript-pluginConfiguration:
{
"plugins": ["typescript"]
// or alternative name
"plugins": ["@typescript-eslint"]
}Provides @typescript-eslint compatible rules for TypeScript code analysis.
# Enable React plugin
oxlint --react-pluginConfiguration:
{
"plugins": ["react", "react-hooks"],
"settings": {
"react": {
"version": "detect",
"pragma": "React",
"fragment": "Fragment",
"createClass": "createReactClass",
"flowVersion": "0.53"
}
}
}React-specific linting rules for JSX, hooks, and component patterns. Includes both react and react-hooks rules.
# Enable Vue plugin
oxlint --vue-pluginConfiguration:
{
"plugins": ["vue"]
}Vue.js-specific linting rules for Single File Components and Vue syntax.
# Enable Next.js plugin
oxlint --nextjs-pluginConfiguration:
{
"plugins": ["nextjs"]
}Next.js framework-specific rules for pages, API routes, and optimization patterns.
# Enable Jest plugin
oxlint --jest-pluginConfiguration:
{
"plugins": ["jest"],
"env": {
"jest": true
}
}Jest testing framework rules for test structure, assertions, and best practices.
# Enable Vitest plugin
oxlint --vitest-pluginConfiguration:
{
"plugins": ["vitest"]
}Vitest testing framework rules. When enabled, automatically enables Jest plugin rules for compatibility.
# Enable import plugin (experimental)
oxlint --import-pluginConfiguration:
{
"plugins": ["import"]
// or alternative name
"plugins": ["import-x"]
}Settings:
{
"settings": {
"import/resolver": {
"node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
},
"typescript": {
"alwaysTryTypes": true,
"project": "./tsconfig.json"
}
},
"import/ignore": ["node_modules"],
"import/extensions": [".js", ".jsx", ".ts", ".tsx"],
"import/core-modules": ["electron"]
}
}ES6 import/export validation and dependency analysis. Works best with --tsconfig option.
# Enable JSDoc plugin
oxlint --jsdoc-pluginConfiguration:
{
"plugins": ["jsdoc"]
}JSDoc comment validation and documentation standards enforcement.
# Enable Promise plugin
oxlint --promise-pluginConfiguration:
{
"plugins": ["promise"]
}Promise usage patterns, async/await best practices, and error handling.
# Enable Node.js plugin
oxlint --node-pluginConfiguration:
{
"plugins": ["node"],
"env": {
"node": true
}
}Node.js specific rules for modules, APIs, and server-side patterns.
# Enable JSX accessibility plugin
oxlint --jsx-a11y-pluginConfiguration:
{
"plugins": ["jsx-a11y"]
}Accessibility rules for JSX elements, ARIA attributes, and semantic HTML.
# Enable React performance plugin
oxlint --react-perf-pluginConfiguration:
{
"plugins": ["react-perf"]
}React performance optimization rules for rendering, memoization, and bundle size.
# Enable regex plugin
oxlint --regex-pluginConfiguration:
{
"plugins": ["regex"]
}Regular expression validation and security rules.
# Enable multiple plugins simultaneously
oxlint --react-plugin --import-plugin --jest-plugin --jsx-a11y-plugin src/
# Mix of enable/disable options
oxlint --react-plugin --disable-unicorn-plugin --disable-oxc-plugin src/{
"plugins": [
"typescript",
"react",
"import",
"jest",
"jsx-a11y"
],
"rules": {
"react/jsx-uses-react": "error",
"import/no-unresolved": "error",
"jest/expect-expect": "warn",
"@typescript-eslint/no-unused-vars": "error"
}
}{
"plugins": ["typescript"],
"rules": {
"@typescript-eslint/explicit-function-return-type": "warn",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/prefer-nullish-coalescing": "warn"
}
}{
"plugins": ["react"],
"rules": {
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": "error",
"react/no-unused-state": "warn",
"react/prefer-stateless-function": "warn"
},
"settings": {
"react": {
"version": "detect"
}
}
}{
"plugins": ["import"],
"rules": {
"import/no-unresolved": "error",
"import/no-cycle": "error",
"import/order": ["warn", {
"groups": ["builtin", "external", "internal"]
}]
},
"settings": {
"import/resolver": {
"typescript": true
}
}
}Some plugins require type information for advanced analysis:
# Enable type-aware rules with TypeScript configuration
oxlint --type-aware --tsconfig ./tsconfig.json --import-plugin src/{
"overrides": [
{
"files": ["src/components/**/*.tsx"],
"plugins": ["react", "jsx-a11y"],
"rules": {
"react/jsx-props-no-spreading": "error",
"jsx-a11y/alt-text": "error"
}
},
{
"files": ["**/*.test.ts", "**/*.test.tsx"],
"plugins": ["jest"],
"env": {
"jest": true
}
}
]
}# Enable experimental JavaScript plugins (requires npm distribution)
oxlint --experimental-js-pluginsRequirements:
Note: This feature is experimental and primarily intended for integration with Node.js tools and language servers.
Install with Tessl CLI
npx tessl i tessl/npm-oxlint