electron打包后启动应用,提示cannot find module fs/promises的解决

错误提示信息如下:
App threw an error during load

Error: Cannot find module 'fs/promises'
    at webpackMissingModule (/home/syx/code/desktop/dist/main.js:14205:84)
    at Object../node_modules/_electron-updater@4.6.5@electron-updater/out/AppUpdater.js (/home/syx/code/desktop/dist/main.js:14205:170)
    at __webpack_require__ (/home/syx/code/desktop/dist/main.js:20:30)
    at Object../node_modules/_electron-updater@4.6.5@electron-updater/out/main.js (/home/syx/code/desktop/dist/main.js:16516:20)
    at __webpack_require__ (/home/syx/code/desktop/dist/main.js:20:30)
    at Object../src/splashscreen.ts (/home/syx/code/desktop/dist/main.js:71674:19)
    at __webpack_require__ (/home/syx/code/desktop/dist/main.js:20:30)
    at Object../src/winsmanager.ts (/home/syx/code/desktop/dist/main.js:71957:22)
    at __webpack_require__ (/home/syx/code/desktop/dist/main.js:20:30)
    at Object../src/main.ts (/home/syx/code/desktop/dist/main.js:70800:21)
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'fs/promises'
    at webpackMissingModule (/home/syx/code/desktop/dist/main.js:14205:84)
    at Object../node_modules/_electron-updater@4.6.5@electron-updater/out/AppUpdater.js (/home/syx/code/desktop/dist/main.js:14205:170)
    at __webpack_require__ (/home/syx/code/desktop/dist/main.js:20:30)
    at Object../node_modules/_electron-updater@4.6.5@electron-updater/out/main.js (/home/syx/code/desktop/dist/main.js:16516:20)
    at __webpack_require__ (/home/syx/code/desktop/dist/main.js:20:30)
    at Object../src/splashscreen.ts (/home/syx/code/desktop/dist/main.js:71674:19)
    at __webpack_require__ (/home/syx/code/desktop/dist/main.js:20:30)
    at Object../src/winsmanager.ts (/home/syx/code/desktop/dist/main.js:71957:22)
    at __webpack_require__ (/home/syx/code/desktop/dist/main.js:20:30)
    at Object../src/main.ts (/home/syx/code/desktop/dist/main.js:70800:21)
Gtk-Message: 15:02:25.098: Failed to load module "canberra-gtk-module"

网上说的最多的解决办法一是说因为node的版本太低导致的,查看electron-builder的代码可以发现,里面都是require("fs/promises")这样的引用,但旧版node是require("fs").promises的引用方式。但试了很多node版本之后并没有解决问题。
二是替换node_modules文件夹中electron-builder文件夹下require("fs/promises")为require("fs").promises;没试过这样办法。
根据上述错误提示,找到node_modules下的electron_updater的AppUpdater.js文件,将require("fs/promises")改为require("fs").promises发现能运行。因为大概半年之前工程还是能运行的,后来就想到锁定版本试试,就把package.json中的"electron-updater":"^4.3.5"改为"electron-updater":"4.3.5",然后就能运行了。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值