Windows
Node.js
Chrome
Cache
Electron

Electron終了時にCacheを消す

More than 1 year has passed since last update.

概要

XMLHttpRequestを使うアプリで、
C:\Users\%USERNAME%\AppData\Roaming\package.jsonのnameフィールド\Cache
にファイルが増えていくことを観測した。(発見時で500MBほど溜まっていた)
具体的には「f_*」といったファイル。(ディスクキャッシュ?)

調査しても削除タイミングやしきい値が見つからなかった。
アプリ終了時に削除することにしたが、fsを使った削除はしたくなかったのでElectronの機能で削除したかった。
削除対象はlocalStorageなどでない通常のキャッシュ。1

どちらかと言えばChrome(Chromium)範疇の話だと思います。

詳しい方がいらっしゃいましたら、キャッシュの仕組みをレクチャーしていただきたいものです。

検証環境

  • Windows7 Professional 64bit
  • electron 1.2.6
  • node v5.2.0

コード

var Electron = require('electron')
var BrowserWindow = Electron.BrowserWindow;

var mainWindow = null

Electron.app.on('window-allclosed', function(){
    if (process.platoform != 'darwin') {
        Electron.app.quit()
    }
})

Electron.app.on('ready', function() {
    mainWindow = new BrowserWindow()

    mainWindow.on('closed', function() {
        Electron.session.defaultSession.clearCache(() => {})
        mainWindow = null
    })
})

今作っているのはウィンドウが一つなので、ウィンドウ終了時に呼び出してますが、Electron.app.quit()の直前の方がよかったような。

参考


  1. 別メソッドでこれらも削除可能