You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Electron.js+Vite+TypeScript项目构建失败问题求助

解决Electron Forge Vite+TS模板生产构建RollupError问题

问题根源

生产构建时触发RollupError无法解析index.html,核心原因有两个:

  • 渲染进程的Vite配置未明确指定HTML入口文件,导致Rollup无法识别构建起点
  • 生产环境下的HTML加载路径指向了未被打包的源码目录,而非构建后的产物目录

步骤1:配置渲染进程Vite文件(vite.renderer.config.ts)

在项目根目录创建/修改vite.renderer.config.ts,指定HTML入口和构建输出目录:

import { defineConfig } from 'vite';

export default defineConfig({
  build: {
    // 和Electron Forge默认构建目录对齐
    outDir: '.vite/renderer',
    rollupOptions: {
      // 明确渲染进程的HTML入口路径
      input: {
        main: './src/views/index.html'
      }
    }
  }
});

步骤2:修正窗口加载路径代码

修改/src/windows/mainWindow.ts的加载逻辑,确保生产环境指向构建后的产物:

import { BrowserWindow } from 'electron';
import path from 'path';

export class MainWindow extends BrowserWindow {
  constructor() {
    super({
      width: 800,
      height: 600,
      webPreferences: {
        preload: path.join(__dirname, '../preload/preload.js')
      }
    });

    if (MAIN_WINDOW_VITE_DEV_SERVER_URL) {
      // 开发环境直接访问Vite dev server路径
      this.loadURL(`${MAIN_WINDOW_VITE_DEV_SERVER_URL}/src/views/index.html`);
      this.webContents.openDevTools();
    } else {
      // 生产环境指向构建后的渲染进程HTML文件
      this.loadFile(path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`));
    }
  }
}

步骤3:验证主进程Vite配置

主进程配置保持现有内容即可,无需额外修改:

import { defineConfig } from "vite";

export default defineConfig({
  resolve: {
    browserField: false,
    mainFields: ["module", "jsnext:main", "jsnext"],
  },
});

步骤4:执行构建测试

清理旧构建产物后重新执行构建:

rm -rf .vite out
npm run make

内容的提问来源于stack exchange,提问作者thewildman971

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:42:53