Skip to content

parser.js from next-config-eslint is missing metadata #72833

Description

@timtucker-dte

Link to the code that reproduces this issue

https://github.com/vercel/next.js/blob/canary/packages/eslint-config-next/parser.js

To Reproduce

Compare the exports in parser.js vs. the eslint specs for custom parsers.

Parser.js:
https://github.com/vercel/next.js/blob/canary/packages/eslint-config-next/parser.js

Eslint documentation that calls for including the meta section as part of a custom parser's exports:
https://eslint.org/docs/latest/extend/custom-parsers#meta-data-in-custom-parsers

Current vs. Expected behavior

Current behavior:
Next.js defines an eslint parser that doesn't include meta information

Expected behavior:
Next.js defines an eslint parser that follows spec and includes meta information

I see at least 2 possible fixes:
Add meta to the list of things from @babel/eslint-parser that parser.js imports and re-exports
or
Use @babel/eslint-parser directly without a wrapper (similar to how the typescript-eslint parser is included)

Provide environment information

Operating System:
  Platform: win32
  Arch: x64
  Version: Windows 11 Enterprise
  Available memory (MB): 47769
  Available CPU cores: 12
Binaries:
  Node: 20.18.0
  npm: 10.8.2
  Yarn: N/A
  pnpm: 9.13.0
Relevant Packages:
  next: 15.0.3 // Latest available version is detected (15.0.3).
  eslint-config-next: 15.0.3
  react: 18.3.1
  react-dom: 18.3.1
  typescript: 5.6.3
Next.js Config:
  output: export

Which area(s) are affected? (Select all that apply)

Developer Experience

Which stage(s) are affected? (Select all that apply)

next build (local)

Additional context

Had some issues initially when upgrading from eslint 8 -> 9 / nextjs 14 -> 15.

Noticed this issue in the eslint repo that discussed the same error I was seeing and noted that the eslint developers indicated the root cause was how Nextjs was setting up the babel parser:
eslint/eslint#19080

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIssue was opened via the bug report template.invalid linkThe issue was auto-closed due to a missing/invalid reproduction link. A new issue should be opened.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions