Răsfoiți Sursa

fix: 构建预览文件时先跑默认 Vite 构建(无 --mode),确保 dist/index.html 存在

guoziyun 3 săptămâni în urmă
părinte
comite
b5c7b2c054
1 a modificat fișierele cu 7 adăugiri și 4 ștergeri
  1. 7 4
      platform/server/src/services/buildService.ts

+ 7 - 4
platform/server/src/services/buildService.ts

@@ -86,7 +86,9 @@ export class BuildService {
         await this.collectOutput(buildOutputDir, platform, results);
       }
 
-      // 5. 复制默认产物到预览目录(供真机扫码测试)
+      // 5. 构建默认产物(无 --mode,用于真机扫码测试)
+      console.log(`[build] Building default for preview...`);
+      await this.runViteBuild("default", "");
       const defaultDist = path.join(TEMPLATE_DIR, "dist", "index.html");
       const previewDir = path.join(this.storageDir, "previews");
       ensureDir(previewDir);
@@ -94,7 +96,7 @@ export class BuildService {
       fs.copyFileSync(defaultDist, previewPath);
       console.log(`[build] Preview file: ${previewPath}`);
 
-      // 6. 打包 ZIP
+      // 7. 打包 ZIP
       await this.createZip(buildOutputDir, results);
 
       // 6. 更新数据库
@@ -129,9 +131,10 @@ export class BuildService {
     }
   }
 
-  private runViteBuild(platform: string): Promise<void> {
+  private runViteBuild(platform: string, modeFlag?: string): Promise<void> {
     return new Promise((resolve, reject) => {
-      const cmd = `cd ${TEMPLATE_DIR} && AD_CONFIG_PATH=src/filler/_ad_config_.ts npx vite build --mode ${platform}`;
+      const mode = modeFlag ?? `--mode ${platform}`;
+      const cmd = `cd ${TEMPLATE_DIR} && AD_CONFIG_PATH=src/filler/_ad_config_.ts npx vite build ${mode}`.trim();
       console.log(`[build] Executing: ${cmd}`);
 
       exec(cmd, { timeout: BUILD_TIMEOUT_MS }, (error, stdout, stderr) => {