Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

Electron環境かどうかの確認方法

Electron を使い始めたころ、Electron 用の資源(HTML, JS)を 純粋なWebアプリでも使いたいと思ったことがありました。当初は環境に依存しないように書いてたんですが、徐々に難しくなって、JavaScript で環境を判別して分岐させるようにしました。

今回はそのことについて書いていきます。

判別方法

方法はいくつかあると思うんですが、requireundefined になるかどうかで判別できました。

if (typeof require == 'undefined') {
  //-> not electron
} else {
  //-> electron
}

Electron だと、require('electron') ... といった感じで書くことがあるので、requireundefined にはなりません。

注意事項

Web アプリでも require が成功する実装だと、上の方法は使えないと思います。

補足

Electron を使っていくうちに、上のような分岐は入れなくなっていきました。理由は Electron の資源を使いまわさないことにしたからです。Webアプリは Webアプリの資源、Electron は Electronの資源と割り切るようになりました。

そのことについては、また違う記事で書くかもしれません。