or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

configuration-options.mdcore-configuration.mdflat-config-utilities.mdindex.mdutility-functions.md
tile.json

tessl/npm-nuxt--eslint-config

ESLint config for Nuxt projects with flat config support and extensive customization options

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@nuxt/eslint-config@1.9.x

To install, run

npx @tessl/cli install tessl/npm-nuxt--eslint-config@1.9.0

index.mddocs/

@nuxt/eslint-config

@nuxt/eslint-config is a comprehensive ESLint configuration package specifically designed for Nuxt 3 projects. It provides a shared, unopinionated-by-default yet highly customizable ESLint setup that integrates seamlessly with Nuxt's development workflow. The configuration supports TypeScript, Vue.js components, modern JavaScript features, and various code quality tools through an extensive plugin ecosystem.

Package Information

  • Package Name: @nuxt/eslint-config
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install @nuxt/eslint-config

Core Imports

import { createConfigForNuxt, defineFlatConfigs, resolveOptions } from "@nuxt/eslint-config";

For types and interfaces:

import type { 
  NuxtESLintConfigOptions, 
  NuxtESLintFeaturesOptions,
  ToolingOptions,
  OptionsFormatters 
} from "@nuxt/eslint-config";

For flat config (ESLint 9+):

import { createConfigForNuxt } from "@nuxt/eslint-config/flat";

CommonJS:

const { createConfigForNuxt, defineFlatConfigs, resolveOptions } = require("@nuxt/eslint-config");

Basic Usage

import { createConfigForNuxt } from "@nuxt/eslint-config";

// Basic configuration with defaults
export default createConfigForNuxt();

// With custom options
export default createConfigForNuxt({
  features: {
    typescript: true,
    stylistic: true,
    tooling: {
      jsdoc: true,
      unicorn: true,
      regexp: true
    }
  }
});

// With additional user configs
export default createConfigForNuxt(
  {
    features: {
      formatters: {
        css: true,
        html: true,
        markdown: "prettier"
      }
    }
  },
  // Custom rules
  {
    rules: {
      "no-console": "warn"
    }
  }
);

// Using resolveOptions for configuration inspection
import { resolveOptions } from "@nuxt/eslint-config";

const resolved = resolveOptions({
  features: { stylistic: true },
  dirs: { src: ["./src"] }
});
console.log(resolved.features.typescript); // Auto-detected
console.log(resolved.dirs.pages); // ["./src/pages"]

Architecture

@nuxt/eslint-config is built around several key components:

  • Flat Config System: Uses ESLint's modern flat configuration format with FlatConfigComposer for configuration management
  • Feature-based Configuration: Modular system where features (TypeScript, Vue, stylistic rules, etc.) can be enabled/disabled independently
  • Async Config Loading: Dynamic imports for optional plugins to reduce bundle size and improve performance
  • Directory-aware Rules: Intelligent rule application based on Nuxt project structure (pages, components, layouts, etc.)
  • Plugin Ecosystem Integration: Seamless integration with popular ESLint plugins for Vue, TypeScript, stylistic formatting, and tooling

Capabilities

Core Configuration

Primary function for creating Nuxt-optimized ESLint configurations with extensive customization options.

function createConfigForNuxt(
  options?: NuxtESLintConfigOptions,
  ...userConfigs: ResolvableFlatConfig[]
): FlatConfigComposer;

interface NuxtESLintConfigOptions {
  features?: NuxtESLintFeaturesOptions;
  dirs?: DirectoriesConfig;
}

interface NuxtESLintFeaturesOptions {
  standalone?: boolean;
  tooling?: boolean | ToolingOptions;
  import?: boolean | ImportPluginOptions;
  stylistic?: boolean | StylisticCustomizeOptions;
  formatters?: boolean | OptionsFormatters;
  nuxt?: NuxtSpecificOptions;
  typescript?: boolean | TypeScriptOptions;
}

Core Configuration

Flat Config Utilities

Utilities for working with ESLint flat configurations and type-safe configuration composition.

function defineFlatConfigs(...configs: ResolvableFlatConfig[]): FlatConfigComposer;

type ResolvableFlatConfig = Linter.Config | Promise<Linter.Config>;

Flat Config Utilities

Configuration Options

Comprehensive type system for configuring all aspects of the ESLint setup, from feature toggles to directory structures.

interface ToolingOptions {
  regexp?: boolean;
  unicorn?: boolean;
  jsdoc?: boolean;
}

interface OptionsFormatters {
  css?: 'prettier' | boolean;
  html?: 'prettier' | boolean;
  xml?: 'prettier' | boolean;
  svg?: 'prettier' | boolean;
  markdown?: 'prettier' | 'dprint' | boolean;
  graphql?: 'prettier' | boolean;
  prettierOptions?: any;
  dprintOptions?: boolean;
}

Configuration Options

Option Resolution

Core utility for resolving and normalizing configuration options with intelligent defaults.

function resolveOptions(config: NuxtESLintConfigOptions): NuxtESLintConfigOptionsResolved;

Utility Functions

Types

interface DirectoriesConfig {
  src?: string[];
  root?: string[];
  pages?: string[];
  layouts?: string[];
  components?: string[];
  componentsPrefixed?: string[];
  composables?: string[];
  plugins?: string[];
  modules?: string[];
  middleware?: string[];
  servers?: string[];
}

interface NuxtSpecificOptions {
  sortConfigKeys?: boolean;
}

interface ImportPluginOptions {
  package?: 'eslint-plugin-import-lite' | 'eslint-plugin-import-x';
}

interface TypeScriptOptions {
  strict?: boolean;
  tsconfigPath?: string;
}

interface NuxtESLintConfigOptionsResolved {
  features: Required<NotNill<NuxtESLintFeaturesOptions>>;
  dirs: Required<NotNill<DirectoriesConfig>>;
}

type NotNill<T> = T extends null | undefined ? never : T;
type Awaitable<T> = T | Promise<T>;