Electron v0.35.0が出た

久しぶりにElectronを触ったらv0.35.0が出てたみたいですね。
このv0.35.0でElectronモジュールのrequireに仕様変更があったみたいでelectron-boilerplateelectron-kitがそのままだと動かなくなりそう。

現状だとrequire("browser-window")としても正常に動くしdeprecatedも出ないので、しばらくは古いモジュール名もサポートするということでしょう

変更点

この変更についてv0.35.0のChangelogには以下のように書かれています。

Add electron module which includes all public APIs.

https://github.com/atom/electron/releases/tag/v0.35.0

あたらしくelectronというモジュールが追加され、今までrequire("browser-window")などとしていたクラスは
このモジュールから利用できるようになったようです。

ElectronのAPIドキュメントもこれに合わせて更新されていて、例えばBrowserWindowは以下のように
electronモジュールのBrowserWindowプロパティから取得するようになっています。

const BrowserWindow = require('electron').BrowserWindow;

(というかAPIドキュメントが知らない間にES2015の書き方になってた)

バグ?

と、モジュールの読み込み方が変わったようですが、変な挙動を見つけました。

electron-kitを更新してから気づいたのですが、Rendererプロセスで読み込まれたモジュール内でrequire("electron")すると読み込みに失敗するようです。

require electron cant resolve

これが仕様じゃないといいんだけど、もし仕様だったら外部モジュールだけ古い書き方が残り続けるなんとも気持ち悪い感じになるから嫌だなぁ…
electron-kitのこのエラーは割とすぐ直すと思います。

Electron >= v0.35.0を使う方やこれからElectonを初めて古い情報漁った方は気をつけてください。