mirror of
https://github.com/coder/code-server.git
synced 2026-05-05 12:05:18 +02:00
fix: invalid ESM module path on Windows (#7162)
This commit is contained in:
@@ -5,6 +5,7 @@ import { promises as fs } from "fs"
|
||||
import * as http from "http"
|
||||
import * as net from "net"
|
||||
import * as path from "path"
|
||||
import * as os from "os"
|
||||
import { WebsocketRequest } from "../../../typings/pluginapi"
|
||||
import { logError } from "../../common/util"
|
||||
import { CodeArgs, toCodeArgs } from "../cli"
|
||||
@@ -58,7 +59,11 @@ async function loadVSCode(req: express.Request): Promise<IVSCodeServerAPI> {
|
||||
// which will also require that we switch to ESM, since a hybrid approach
|
||||
// breaks importing `rotating-file-stream` for some reason. To work around
|
||||
// this, use `eval` for now, but we should consider switching to ESM.
|
||||
const modPath = path.join(vsRootPath, "out/server-main.js")
|
||||
let modPath = path.join(vsRootPath, "out/server-main.js")
|
||||
if (os.platform() === "win32") {
|
||||
// On Windows, absolute paths of ESM modules must be a valid file URI.
|
||||
modPath = "file:///" + modPath.replace(/\\/g, "/")
|
||||
}
|
||||
const mod = (await eval(`import("${modPath}")`)) as VSCodeModule
|
||||
const serverModule = await mod.loadCodeWithNls()
|
||||
return serverModule.createServer(null, {
|
||||
|
||||
Reference in New Issue
Block a user