Skip to content

[Bug?]: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME] #2140

@Jeysef

Description

@Jeysef

Duplicates

  • I have searched the existing issues

Latest version

  • I have tested the latest version

Current behavior 😯

Running vite preview on windows results in:

node:internal/modules/esm/load:195
    throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
          ^

Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
    at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:195:11)
    at defaultLoadSync (node:internal/modules/esm/load:142:3)
    at #loadAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:795:12)
    at #loadSync (node:internal/modules/esm/loader:815:49)
    at ModuleLoader.load (node:internal/modules/esm/loader:780:26)
    at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:526:31)
    at #getOrCreateModuleJobAfterResolve (node:internal/modules/esm/loader:571:36)
    at afterResolve (node:internal/modules/esm/loader:624:52)
    at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:630:12)
    at onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:649:32) {
  code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}

Node.js v24.13.0
 ELIFECYCLE  Command failed with exit code 1.

Does not happen on vite dev.
This seems like a windows only problem.

Expected behavior 🤔

No error should be present.

Steps to reproduce 🕹

Steps:

  1. vite build
  2. vite preview
  3. load the site
  4. check console (not the browser one)

Context 🔦

patch:

diff --git a/dist/config/dev-server.js b/dist/config/dev-server.js
index ab966eadf274b4fac10beaf9bdd983da2ebe93f6..4ee117c064b1979b2de87eae629c1932fc6be659 100644
--- a/dist/config/dev-server.js
+++ b/dist/config/dev-server.js
@@ -1,4 +1,5 @@
 import { NodeRequest, sendNodeResponse } from "srvx/node";
+import { pathToFileURL } from "url";
 import { isRunnableDevEnvironment, } from "vite";
 import { VITE_ENVIRONMENTS } from "./constants.js";
 export function devServer() {
@@ -10,7 +11,7 @@ export function devServer() {
                     server.middlewares.use(async (req, res) => {
                         res.setHeader("content-encoding", "identity");
                         const webReq = new NodeRequest({ req, res });
-                        const def = await import(process.cwd() + "/dist/server/entry-server.js");
+                        const def = await import(pathToFileURL(process.cwd() + "/dist/server/entry-server.js").href);
                         sendNodeResponse(res, await def.default.fetch(webReq));
                     });
                 };

Your environment 🌎

System:
 OS: Windows 11

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions