Web開発など

Java, JS, CSS, HTML, Unity, C# のことなどを書いてます。フリーソフトや二次創作の公開もしています。

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の資源と割り切るようになりました。

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