vue electron 執行時報錯Cannot find module 'fs/promises'的解決方法
專案已經上線半年了,全省多地使用,突然出現的問題,最後發現是因為使用的 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;