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

Electron使用electron-builder打包后exe运行找不到electron-is-dev模块

解决方案

按以下步骤修改即可解决打包后运行报错的问题:

  • 修复public/electron.js语法错误
    激活事件回调中的函数名存在输入冗余内容,修改为如下代码:
    app.on("activate", () => {
      if (BrowserWindow.getAllWindows().length === 0) {
        createWindow()
      }
    })
    
  • 完善Electron窗口配置
    Electron 12+ 版本默认开启上下文隔离,开启nodeIntegration的同时需要关闭上下文隔离,避免渲染进程权限异常,同时替换本地文件加载方式避免路径编码问题:
    function createWindow() {
      const win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
          nodeIntegration: true,
          contextIsolation: false
        },
      })
      if (isDev) {
        win.loadURL("http://localhost:3000")
        win.webContents.openDevTools({ mode: "detach" })
      } else {
        // 替换为loadFile方法加载本地静态文件
        win.loadFile(path.resolve(__dirname, '../build/index.html'))
      }
    }
    
  • 修改package.json打包配置
    1. 调整打包命令,先执行React生产构建,再执行Electron打包,避免缺失前端构建产物:
    "scripts": {
      // 其余脚本保持不变
      "dist": "npm run build && electron-builder"
    }
    
    1. 在build配置中添加files字段,指定需要打包进应用的资源范围:
    "build": {
      "appId": "Jokes Collection",
      "extends": null,
      "files": [
        "build/**/*",
        "public/electron.js",
        "node_modules/**/*"
      ],
      "win": {
        "target": "nsis",
        "icon": "build/icon.png"
      }
    }
    
  • 测试验证
    删除本地已有的build、dist文件夹,重新执行npm run dist,打包完成后运行dist目录下的exe文件即可正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:15:04