From f9f5fccfc9aa20ad2a171e6cf1fd8443282ad211 Mon Sep 17 00:00:00 2001 From: SkyJourney Date: Sat, 1 Aug 2026 11:12:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A1=8C=E9=9D=A2?= =?UTF-8?q?=E5=AD=97=E4=BD=93=E8=BD=AC=E6=8D=A2=E4=BE=9D=E8=B5=96=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/desktop/scripts/build-main.mjs | 5 ++++- apps/desktop/tests/release-build.test.ts | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/apps/desktop/scripts/build-main.mjs b/apps/desktop/scripts/build-main.mjs index 3bdc56d..d58b9f4 100644 --- a/apps/desktop/scripts/build-main.mjs +++ b/apps/desktop/scripts/build-main.mjs @@ -12,7 +12,10 @@ await build({ banner: { js: [ 'import { createRequire as __mdToPdfCreateRequire } from "node:module";', - "const require = __mdToPdfCreateRequire(import.meta.url);" + 'import { dirname as __mdToPdfDirname } from "node:path";', + 'import { fileURLToPath as __mdToPdfFileURLToPath } from "node:url";', + "const require = __mdToPdfCreateRequire(import.meta.url);", + "const __dirname = __mdToPdfDirname(__mdToPdfFileURLToPath(import.meta.url));" ].join("\n") } }); diff --git a/apps/desktop/tests/release-build.test.ts b/apps/desktop/tests/release-build.test.ts index 7574b1d..c060d47 100644 --- a/apps/desktop/tests/release-build.test.ts +++ b/apps/desktop/tests/release-build.test.ts @@ -92,6 +92,23 @@ describe("桌面发行构建链", () => { expect(buildScript).toContain("dist/docx-media-filter.lua"); }); + it("为 ESM 主进程中的 CommonJS 字体转换依赖保留 __dirname", () => { + const buildScript = readFileSync( + `${desktopRoot}/scripts/build-main.mjs`, + "utf8" + ); + + expect(buildScript).toContain( + 'dirname as __mdToPdfDirname' + ); + expect(buildScript).toContain( + 'fileURLToPath as __mdToPdfFileURLToPath' + ); + expect(buildScript).toContain( + "const __dirname = __mdToPdfDirname(__mdToPdfFileURLToPath(import.meta.url));" + ); + }); + it("在 Docker Web 构建前复制样例并保留到运行镜像", () => { const dockerfile = readFileSync( `${projectRoot}/deploy/Dockerfile`,