Electronの公式チュートリアル を見ながらHello Worldを作ってみたのですが、以下のようなエラーダイアログが表示されました。
A JavaScript error occurred in the main process
Uncaught Exception:
SyntaxError: missing ) after argument list
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:413:25)
at Object.Module._extensions..js (module.js:448:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Object.<anonymous> (/Users/foo/.nvm/v0.12.4/lib/node_modules/electron-prebuilt/dist/Electron.app/Contents/Resources/default_app/main.js:235:23)
at Module._compile (module.js:430:26)
at Object.Module._extensions..js (module.js:448:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
スタックトレースを見て気になったのは、electron-prebuiltのdefault_app/main.jsが実行されていることでした。
そこで、package.jsonのmain(エントリポイント)の指定が間違っているのかと思い、色々試してみたのですが、エラーは変わりませんでした。
下記の該当箇所を見ても SyntaxError: missing ) after argument list
は関係なさそうです。
default_app/main.js#235
require('module')._load(packagePath, module, true);
ぐぐっても原因&解決策を見つけられなかったので、とりあえずパッケージングして作成されたアプリを起動してみました。
すると、自分が書いたmain.jsのスタックトレースが表示されました。
エントリポイントに指定したファイルでエラーがあった場合には、それをElectron本体がキャッチして代わりにdefault_app/main.jsを実行するようになっているのかもしれません。
ちなみにエラー自体は
- app.on('ready', fnction() {
+ app.on('ready', function() {
というしょうもないものでした。。。