前言
這個也是一拳就解決的事。首先來說明一下情況
環境
在 electron 的 renderer process 裡,遇到 asar 檔案的開啟或讀取,會有特別狀況,例如:
1. 對它判斷是否為目錄,答案為真。
2. 對它讀取內容會出現錯誤 ‘ENOENT’。
原因在於 electron 改寫了原本 fs 模組的內容,一但遇到 asar 檔,就會視為目錄,可以對它裡面的檔案做取用。
這對於我要複製/刪除 asar 檔或是為它做 hash 都會出問題。
網路上多數的查詢都長成這樣:https://github.com/electron/electron/issues/1658
是說改用 original-fs
模組。但是它已經在 npm 上找不到了!!這不是搞笑嗎?
其他 npm 上跟 original-fs
的模組我也試了幾個,失敗。
解法
照參考的解法,在 fs 動作前,加上 process.noAsar = true
,一拳。
If you want read asar file as normal file in electron process, and you can not find original-fs
module, you just need one line before fs read/readstream:
process.noAsar = true
done.
參考:
沒有留言:
張貼留言