Environment
Operating system macOS 15.3 (Darwin 25.2.0 arm64)
CPU Apple M2 Max
Node.js version v24.13.0
Package manager pnpm 10.24.0
Nuxt version 4.3.1
Nitro version 2.13.1
Builder vite 7.3.1
Vue version 3.5.27
Config future.compatibilityVersion 5, compatibilityDate latest
Modules -
Reproduction
https://github.com/vinayakkulkarni/nuxt-cloudflare-imports-bug
git clone https://github.com/vinayakkulkarni/nuxt-cloudflare-imports-bug.git
cd nuxt-cloudflare-imports-bug
pnpm install
rm -rf .nuxt node_modules/.cache
pnpm dev
Describe the bug
When using cloudflare-pages preset with compatibilityVersion: 5 and compatibilityDate: 'latest', the Nitro dev server fails to start with:
[nitro] ERROR Error: Could not load /path/to/.nuxt/imports
(imported by nitropack/dist/presets/cloudflare/runtime/plugin.dev.mjs):
ENOENT: no such file or directory, open '/path/to/.nuxt/imports'
The cloudflare-dev emulation plugin (nitropack/dist/presets/cloudflare/runtime/plugin.dev.mjs) imports from #imports:
import { useRuntimeConfig, getRequestURL } from "#imports";
#imports resolves to the physical path .nuxt/imports, but this file is never generated — only .nuxt/imports.d.ts exists.
Minimal nuxt.config.ts
export default defineNuxtConfig({
future: {
compatibilityVersion: 5,
},
compatibilityDate: 'latest',
nitro: {
preset: 'cloudflare-pages',
},
});
Trigger conditions
All three are required. Removing any one makes the error disappear:
| Config |
Value |
future.compatibilityVersion |
5 |
compatibilityDate |
'latest' |
nitro.preset |
'cloudflare-pages' |
- ✅
compatibilityDate: '2025-02-08' (fixed date) → works fine
- ✅
compatibilityVersion: 4 → works fine
- ✅
preset: 'node-server' → works fine
Additional context
The combination of compatibilityVersion: 5 + compatibilityDate: 'latest' enables cloudflare-dev emulation in dev mode (visible in logs: "Using cloudflare-dev emulation in development mode."). This loads nitropack/dist/presets/cloudflare/runtime/plugin.dev.mjs which tries to import from the #imports virtual module. With compatibilityVersion: 5, the virtual module resolution seems to break and it falls back to resolving the physical file .nuxt/imports which doesn't exist.
Logs
> nuxt dev
● Nuxt 4.3.1 (with Nitro 2.13.1, Vite 7.3.1 and Vue 3.5.27)
➜ Local: http://localhost:3000/
ℹ Using cloudflare-dev emulation in development mode.
[nuxt] ℹ Running with compatibility version 5
✔ Vite dev server built in 19ms
[nitro] ERROR Error: Could not load /Users/vinayak/dev/personal/nuxt/vinayakkulkarni/nuxt-cloudflare-imports-bug/.nuxt/imports (imported by node_modules/.pnpm/nitropack@2.13.1/node_modules/nitropack/dist/presets/cloudflare/runtime/plugin.dev.mjs): ENOENT: no such file or directory, open '/Users/vinayak/dev/personal/nuxt/vinayakkulkarni/nuxt-cloudflare-imports-bug/.nuxt/imports'
undefined
Environment
Reproduction
https://github.com/vinayakkulkarni/nuxt-cloudflare-imports-bug
git clone https://github.com/vinayakkulkarni/nuxt-cloudflare-imports-bug.git cd nuxt-cloudflare-imports-bug pnpm install rm -rf .nuxt node_modules/.cache pnpm devDescribe the bug
When using
cloudflare-pagespreset withcompatibilityVersion: 5andcompatibilityDate: 'latest', the Nitro dev server fails to start with:The cloudflare-dev emulation plugin (
nitropack/dist/presets/cloudflare/runtime/plugin.dev.mjs) imports from#imports:#importsresolves to the physical path.nuxt/imports, but this file is never generated — only.nuxt/imports.d.tsexists.Minimal
nuxt.config.tsTrigger conditions
All three are required. Removing any one makes the error disappear:
future.compatibilityVersion5compatibilityDate'latest'nitro.preset'cloudflare-pages'compatibilityDate: '2025-02-08'(fixed date) → works finecompatibilityVersion: 4→ works finepreset: 'node-server'→ works fineAdditional context
The combination of
compatibilityVersion: 5+compatibilityDate: 'latest'enables cloudflare-dev emulation in dev mode (visible in logs:"Using cloudflare-dev emulation in development mode."). This loadsnitropack/dist/presets/cloudflare/runtime/plugin.dev.mjswhich tries to import from the#importsvirtual module. WithcompatibilityVersion: 5, the virtual module resolution seems to break and it falls back to resolving the physical file.nuxt/importswhich doesn't exist.Logs