Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8898

Electronをバージョンアップしたらwindowsで4G以上のファイルが読み込めなくなった話

$
0
0

electron6系から8系へバージョンアップした際に、4G以上の大きいサイズのファイルにおいて、ビルド後ローカルファイルが読み込めなくなりました(windowsのみ。ローカル起動では可能)
Mac OSでは読み込みが可能でした
どこにも情報が無く数週間悩んだのでまとめてみました

環境

  • electron バージョン: electron 8.3.1
  • OS: windows10 64bit
  • ビルド: electron-builder 22.1.0

XMLHttpRequest (XHR) 通信でローカルファイル読み込み

期待する値

  • readyState=4(DONE)になる
  • onloadイベントが発火

実際の値

  • readyState=3(LOADING)のまま
  • onprogress でずっと読み込み中 (totalの値まで到達してもonloadが呼ばれない)
  • ontimeoutも発火せず...

対応

  • 32bit アプリを 64bit に変更(electron-builderにて、ビルドの引数を変更した)
    • 「electron-builder build --win --ia32」 -> 「npm run obfuscation && electron-builder build --win --x64」

補足(XMLHttpRequestで通信エラーになっているときの判定)

  • totalフィールド: 全転送バイト数
  • loadedフィールド: これまで転送されたバイト数
  • 通信エラーになっている時以下になっている(全体の長さが不明の状態)
    • total = 0
    • lengthComputable = false
xhr.js
// データ受信中のイベントvarxhr=newXMLHttpRequest();xhr.onprogress=function(oEvent){if(oEvent.lengthComputable||xhr.total!==0){varpercentComplete=oEvent.loaded/oEvent.total*100;// ...}else{// 全体の長さが不明なため、進捗情報を計算できない}

参考


Viewing all articles
Browse latest Browse all 8898

Trending Articles