Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

fix: Nuxt DevTools (vite-plugin-inspect) breaks oxc-walker's parseSync resolution, causing oxc-walker: could not resolve a parseSync implementation across many plugin transforms

オープン
#1,081 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
nuxt, typescript, vite

調査の方向性

まず、DevTools を有効にした状態で npm run dev または npm run build を使用して Nuxt starter kit の失敗を再現します。vite-plugin-inspect を通じて、oxc-walker's resolveParseSync と Nuxt の keyed-functions compiler macro まで変換パスを追跡します。完了の条件は、DevTools を無効にせずに oxc-parser が正常に解決され、報告された変換エラーが消えることです。

索引モデルが issue の本文から書いたものです。

説明

bug needs reproduction
🐛 The bug
Summary

When Nuxt DevTools is enabled, plugin/component transforms that rely on oxc-walker (via @unhead, Nuxt's internal keyed-functions compiler macro, nuxt-schema-org, nuxt-auth-sanctum, etc.) intermittently or consistently fail with:

oxc-walker: could not resolve a parseSync implementation. Install oxc-parser or rolldown (and use rolldown/utils), or pass a parseSync function via the parseAndWalk options.

Disabling DevTools (devtools: { enabled: false } in nuxt.config.ts) makes the error disappear entirely and permanently, across every environment we tested.

Environment

Nuxt: 4.4.8 and 4.5.2 (reproduced on both)
Vite: 7.3.6 and 8.2.2 (reproduced on both — not specific to Vite 8/Rolldown)
Node: v26.8.1
npm: 12.0.2
OS: macOS (Darwin 25.6.0), Apple Silicon (arm64)
oxc-parser: 0.147.0 (installed and working correctly when tested standalone via node -e "require('oxc-parser').parseSync")
oxc-walker: 1.1.1

Reproduction

Any Nuxt project with devtools enabled (the default) and any module that triggers oxc-walker-based static analysis on plugins/components (this reproduces even on the official Nuxt starter kit — no extra modules required beyond what DevTools itself needs).
Run npm run dev (or npm run build).
Errors/warnings appear referencing multiple internal Nuxt plugin files (payload.client.js, revive-payload.*.js, router.js, unhead.js, user components like AppFooter.vue, etc.), each pointing to oxc-walker's resolveParseSync.

Example full stack trace (dev mode, triggered from a Vue component via Nuxt's keyed-functions compiler macro):

[plugin:nuxt:compiler:keyed-functions] oxc-walker: could not resolve a parseSync implementation. Install oxc-parser or rolldown (and use rolldown/utils), or pass a parseSync function via the parseAndWalk options.

/path/to/project/app/components/app/AppFooter.vue

at resolveParseSync (node_modules/oxc-walker/dist/index.mjs:174:8)
at parseAndWalk (node_modules/oxc-walker/dist/index.mjs:196:29)
at TransformPluginContext.handler (node_modules/nuxt/dist/index.mjs:4754:29)
at async file:///.../node_modules/vite-plugin-inspect/dist/shared/vite-plugin-inspect.Fv_Ybe1l...
at async EnvironmentPluginContainer.transform (node_modules/@nuxt/vite-builder/node_modules/vite/dist/...)
at async loadAndTransform (node_modules/@nuxt/vite-builder/node_modules/vite/dist/...)
at async viteTransformMiddleware (node_modules/@nuxt/vite-builder/node_modules/vite/dist/...)

Note that vite-plugin-inspect (bundled with/used by Nuxt DevTools) sits directly in the transform call stack, between Vite's plugin container and the point where oxc-walker fails to resolve parseSync.

Expected behavior

oxc-walker should resolve parseSync from oxc-parser regardless of whether DevTools/vite-plugin-inspect is wrapping the transform pipeline.

Actual behavior

With DevTools enabled, oxc-walker's internal resolveParseSync() (which uses createRequire(import.meta.url) from its own module location) fails to locate oxc-parser, even though:

oxc-parser is correctly installed and resolvable via both require() and dynamic import() when tested standalone.
npm ls oxc-parser and npm ls oxc-walker show a single, deduplicated version each across the whole dependency tree.

This strongly suggests vite-plugin-inspect's transform wrapping changes the module context (e.g. import.meta.url, or how the transform function is invoked/bound) in a way that breaks oxc-walker's createRequire-based resolution of oxc-parser.

Confirmed fix
ts
// nuxt.config.ts
export default defineNuxtConfig({
  devtools: { enabled: false },
})

After disabling DevTools and restarting the dev server (with .nuxt and node_modules/.vite cleared for good measure), the error disappears completely and does not return, across multiple terminal environments (plain Terminal.app and VS Code's integrated terminal) and across both a dev-only session and a build → dev cycle.

🛠️ To reproduce
🌈 Expected behavior
ℹ️ Additional context

p.s. bugreport generated with Claude AI.

主要言語
TypeScript
スター
3.3k
フォーク
214
平均マージ
19時間 45分
マージ済み PR(30日)
12

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nuxt/devtools のほかの issue

nuxt/devtools の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。