1. 程式人生 > 其它 >vue electron 執行時報錯Cannot find module 'fs/promises'的解決方法

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

暴露為 require('fs/promises')

v11.14.0, v10.17.0

此 API 不再是實驗的。

v10.1.0

該 API 僅可通過 require('fs').promises 訪問。

v10.0.0

新增於: v10.0.0

2: 替換node_modules資料夾中electron-builder資料夾下 require("fs/promises")為require("fs").promises;