項目已經上線半年了,全省多地使用,突然出現的問題,最后發現是因為使用的 electron-updater 因為版本號沒有鎖定,突然之間就報了上面的錯誤,不管我怎么升級node都沒用(哈哈,node本身就沒問題),最后我根據提示找到報錯位置:node_modules下的electron-updater的AppUpdater.js文件,將require("fs/promises")改為require("fs").promises,發現項目能跑起來,但是因為不想修改node_module文件,所以繼續找問題,發現其他模塊require("fs/promises")引入時並沒有問題,然后我就卸載了electron-updater模塊,發現項目跑起來了,然后我就猜測是大版本中最新的版本出問題了,接着我就把package.json中引入的"electron-updater": "4.3.5"鎖定版本,運行項目,正常啟動。
所以我的報錯原因就是引入的electron-updater模塊更新了,並且更新后的內容里有報錯(也許用的node版本低)
解決方法:鎖定正常運行的版本即可,package.json中 "electron-updater": "^4.3.5" 改為 "electron-updater": "4.3.5" ;
總結:項目穩定后鎖定版本號,防止出現類似的問題
下面是網上的一些解決方法:
1:這是nodejs版本太低導致的,查看electron-builder的代碼可以發現,里面都是require("fs/promises")這樣的引用,但是舊版nodejs是
require("fs").promises
的引用方式;
這種錯的解決方法:升級nodejs版本
版本 | 變更 |
---|---|
v14.0.0 | 暴露為 |
v11.14.0, v10.17.0 | 此 API 不再是實驗的。 |
v10.1.0 | 該 API 僅可通過 |
v10.0.0 | 新增於: v10.0.0 |
2: 替換node_modules文件夾中electron-builder文件夾下 require("fs/promises")為require("fs").promises;