Skip to content

vp dev with experimental.bundledDev fails on startup: Cannot find package 'rolldown' #3110

Closed

Description

@NickR49

Describe the bug

On 1.3.0, vp dev with experimental.bundledDev: true exits on startup with ERR_MODULE_NOT_FOUND for rolldown.

vitejs/vite#23568 changed bundled dev to read the rolldown dev runtime from the installed rolldown package:

const ROLLDOWN_DEV_RUNTIME_ENTRY = "rolldown/experimental/runtime";
function rolldownDevRuntimeEntryPath() {
  return fileURLToPath(import.meta.resolve(ROLLDOWN_DEV_RUNTIME_ENTRY));
}

That works in Vite, which depends on rolldown. @voidzero-dev/vite-plus-core bundles rolldown under its own ./rolldown/* exports and has no rolldown dependency, so the bare specifier doesn't resolve. If another package in the project happens to install rolldown, the resolve succeeds but picks up that copy's runtime, which may not match the bundled rolldown.

This is like #2384: a path in the upstream bundled-dev code that the core build doesn't rewrite for the packaged layout.

The runtime is already in the package as ./rolldown/experimental/runtime (dist/rolldown/experimental-runtime.mjs, which has no imports of its own). Resolving that export instead fixes it. We're running this patch locally:

 function rolldownDevRuntimeEntryPath() {
-	return fileURLToPath(import.meta.resolve(ROLLDOWN_DEV_RUNTIME_ENTRY));
+	return fileURLToPath(import.meta.resolve("@voidzero-dev/vite-plus-core/rolldown/experimental/runtime"));
 }

ROLLDOWN_DEV_RUNTIME_ENTRY should keep its upstream value, because getHmrImplementation also uses it to find and rewrite the import in bundledDevClient.mjs. With the patch, vp dev starts, /@rolldown/experimental-runtime.mjs is served, and the client imports it.

A proper fix would probably rewrite the specifier in packages/core/build.ts alongside BUNDLED_DEV_CLIENT_ENTRY. The command_dev_bundled_dev snapshot from #2384 should catch it as long as no other package installs rolldown.

Reproduction

Any project on vite-plus@1.3.0 with experimental: { bundledDev: true } in vite.config.ts and no rolldown package installed. The command_dev_bundled_dev fixture from #2384 should show it.

Steps to reproduce

  1. Create a project with vite-plus@1.3.0.
  2. Set experimental: { bundledDev: true } in vite.config.ts.
  3. Run vp dev.

System Info

macOS (Darwin 27.0.0, arm64)
Node 24.22.0
vite-plus 1.3.0 / @voidzero-dev/vite-plus-core 1.3.0
Vitest 5.0.5

Used Package Manager

yarn (4.18.1, node-modules linker)

Logs

error when starting dev server:
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'rolldown' imported from /…/node_modules/vite/dist/vite/node/chunks/node.js
    at Object.getPackageJSONURL (node:internal/modules/package_json_reader:331:9)
    at packageResolve (node:internal/modules/esm/resolve:784:25)
    at moduleResolve (node:internal/modules/esm/resolve:873:18)
    at defaultResolve (node:internal/modules/esm/resolve:1006:11)
    at #cachedDefaultResolve (node:internal/modules/esm/loader:705:20)
    at #resolveAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:725:38)
    at ModuleLoader.resolveSync (node:internal/modules/esm/loader:763:56)
    at Object.resolve (node:internal/modules/esm/initialize_import_meta:37:25)
    at rolldownDevRuntimeEntryPath (file:///…/node_modules/vite/dist/vite/node/chunks/node.js:21927:35)
    at file:///…/node_modules/vite/dist/vite/node/chunks/node.js:21924:293 {
  code: 'ERR_MODULE_NOT_FOUND'
}

Activity

  1. self-assigned this
    on Oct 19, 2026
  2. fengmk2 commented on Oct 19, 2026

    @fengmk2
    Member

    Thank you for the feedback. I will fix it soon.

  3. added a commit that references this issue on Oct 19, 2026
    f528a59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

Priority

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions