Skip to content

eslint-plugin-format not installed as dependency, breaking ESLint language servers with Yarn 4.x #620

Description

@fabkho

Environment


  • Operating System: Darwin
  • Node Version: v22.17.1
  • Nuxt Version: 4.1.3
  • CLI Version: 3.28.0
  • Nitro Version: 2.12.7
  • Package Manager: yarn@4.9.2
  • Builder: -
  • User Config: modules, css, modulesDir, build, compatibilityDate, vite, typescript, eslint, i18n, tailwindcss
  • Runtime Modules: @pinia/nuxt@0.11.2, @nuxtjs/i18n@10.0.4, @nuxtjs/tailwindcss@6.14.0, @nuxt/eslint@1.9.0, unplugin-turbo-console/nuxt@2.2.0, @vueuse/nuxt@13.6.0, nuxt-auto-parallel-plugins@1.1.0
  • Build Modules: -

Package

@nuxt/eslint

Reproduction

  1. Create a new Nuxt project using Yarn 4.x (with nodeLinker: node-modules)
  2. Install @nuxt/eslint following the official setup guide
  3. Configure ESLint according to docs
  4. Try to use ESLint via language server (VS Code, WebStorm, etc.)

Minimal reproduction:

npm create nuxt-app my-app
cd my-app
corepack enable
yarn set version stable
yarn add -D @nuxt/eslint eslint
# Configure eslint.config.mjs as per docs
# Try to use ESLint in IDE - it will fail

Commands:

yarn explain peer-requirements
# Shows: @nuxt/eslint doesn't provide eslint-plugin-format to @nuxt/eslint-config

Describe the bug

Description

@nuxt/eslint-config declares eslint-plugin-format as a peer dependency, but @nuxt/eslint (the main package) only includes it in devDependencies.

This causes ESLint language servers to fail with "cannot find eslint-plugin-format" because it's not installed in the user's node_modules.

Root Cause

In packages/eslint-config/package.json:

"peerDependencies": {
  "eslint": "^9.0.0",
  "eslint-plugin-format": "*"
}

But in packages/eslint/package.json:

"devDependencies": {
  "eslint-plugin-format": "catalog:prod"
}

Expected Behavior

eslint-plugin-format should be automatically available when installing @nuxt/eslint

Current Workaround

Users must manually install:

yarn add -D eslint-plugin-format

Or use Yarn 4 package extensions in .yarnrc.yml:

packageExtensions:
  '@nuxt/eslint@*':
    dependencies:
      eslint-plugin-format: '*'

Additional context

No response

Logs

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions