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

Electron Forge点击窗口关闭报错Cannot read property 'close' of undefined如何解决

错误修复方案

错误原因

该报错是@electron-forge/plugin-webpack旧版本的已知Bug:开发模式下点击窗口关闭程序时,exitHandler回调会尝试调用已经被销毁的devServer实例的close方法,此时server对象为undefined,因此抛出类型错误。该报错仅出现在npm run start开发环境下,不影响生产打包后的程序运行。

修复方案

方案1:升级插件版本(推荐)

官方已在后续版本修复该问题,直接升级@electron-forge/plugin-webpack到最新稳定版即可解决:

# npm
npm install @electron-forge/plugin-webpack@latest --save-dev
# yarn
yarn add @electron-forge/plugin-webpack@latest --dev
# pnpm
pnpm add @electron-forge/plugin-webpack@latest -D

方案2:临时修复(适用于版本被锁死无法升级的场景)

临时调试用修改

直接修改node_modules内的源码:

  1. 打开路径node_modules/@electron-forge/plugin-webpack/dist/WebpackPlugin.js
  2. 找到exitHandler方法内的server.close()代码,修改为if (server) server.close()或者使用可选链写法server?.close()即可。
    该修改会在重新安装依赖后失效,仅适合临时调试使用。

永久补丁修复

使用patch-package将修改固化到项目中:

  1. 先安装patch-package:npm install patch-package --save-dev
  2. 按上述步骤修改源码后,执行命令:npx patch-package @electron-forge/plugin-webpack
  3. 在package.json的scripts中添加命令:"postinstall": "patch-package"
    后续每次安装依赖都会自动应用该补丁,无需重复修改源码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:51:01