使用 electron-updater 更新 electron 应用,打完包安装启动出现这种报错:Cannot find module 'debug',Cannot find module 'builder-util-runtime'。

项目依赖
{
"electron": "^24.4.1",
"electron-builder": "^23.6.0",
"electron-builder-squirrel-windows": "^24.5.0",
"electron-log": "^4.4.8",
"electron-updater": "^5.3.0",
"electron-vite": "^1.0.23",
}
完整报错
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'builder-util-runtime'Require stack:
-/Applications/Post Tools.app/Contents/Resources/app.asar/node moduleselectron-updater/out/main.js- /Applications/Post Tools.app/Contents/Resources/app.asar/out/mainindex.js
at Module.resolveFilename (node:internal/modules/cjs/loader:1054:15at n. resolveFilename (node:electron/js2c/browser init:2:109974)at Module. load (node:internal/modules/cjs/loader:900:27)at f. load (node:electron/js2c/asar bundle:2:13330)at Module.require (node:internal/modules/cjs/loader:1120:19)at require (node:internal/modules/cjs/helpers:103:18)at Object.<anonymous> (/Applications/Post Tools.app/Contents/Resourcesapp.asar/node modules/electron-updater/out/main.js:4:32)at Module.compile (node:internal/modules/cjs/loader:1241:14)at Module.extensions..js (node:internal/modules/cjs/loader:1296:10)at Module.load (node:internal/modules/cjs/loader:1096:32)
问题原因
因为项目使用 pnpm 安装依赖,打完包后有些资源找不到,导致这种很奇怪的报错(Cannot find module 'xxx')。
问题解决
- 在项目根目录下,新建
.npmrc文件。 - 配置
node-linker=hoisted
设置了 node-linker=hoisted ,pnpm 就会形成扁平化的结构,然后 electron-builder 会自动寻找依赖进行打包,就不会出现这种 Cannot find module 'xxx' 包找不到的情况。
- 参考文档:https://github.com/electron-userland/electron-builder/issues/6481
欢迎访问:天问博客



















