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

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions