electron-starterのbootstrap失敗

このエントリーをはてなブックマークに追加

electron-starter を使ってelectronのアプリを作ってみようとドキュメント通りに以下を実行したのですが、うまくいかない。

  1. script/bootstrap – チェックアウト毎にこれを実行
  2. script/build – package.jsonとか変わったときに実行
  3. script/run – アプリを実行

以下のようなエラー文言が出てきてしまう。

dyld: lazy symbol binding failed: Symbol not found: _node_module_register
Referenced from: /Users/ほげ/Projects/electron/electron-starter-master/apm/node_modules/atom-package-manager/node_modules/keytar/build/Release/keytar.node
Expected in: dynamic lookup

dyld: Symbol not found: _node_module_register
Referenced from: /Users/ほげ/Projects/electron/electron-starter-master/apm/node_modules/atom-package-manager/node_modules/keytar/build/Release/keytar.node
Expected in: dynamic lookup

Nodeは現時点の最新版(v0.12.x)を使っていたのですが、どうもこれがよろしくなさそう。
このIssueに現象がちょっぴり似ていたのでとりあえずnvmを使ってNodeを複数バージョン管理できるようにし、v0.10.xで試しました。

nvmのインストール

こちらで説明されていますが、とりあえずcurlがあれば

curl https://raw.githubusercontent.com/creationix/nvm/v0.25.1/install.sh | bash

でインストール完了します。

v0.10.xをインストールしたかったので最新版をnvm ls-remoteでチェックしてv0.10.38であることがわかる。

# v0.10.38のNodeをインストール
nvm install v0.10.38

script/bootstrap再び

script/bootstrap する前にnode_modulesapm/node_modulesbuild/node_modulesの削除しておいてから実行。

# ./script/bootstrap
Node: v0.10.38
npm: v1.4.28
Installing build modules...
Installing apm...
Installing modules ✓
Deduping modules ✓

なんかいい感じにbootstrapできたっぽいです。

script/build実行

bootstrapできたのでさっそくbuild!

# ./script/build
Node: v0.10.38
npm: v1.4.28
Installing build modules...
Installing apm...
Installing modules ✓
Deduping modules ✓
Running "build-atom-shell" task

Running "bower:install" (bower) task
>> Installed bower packages
>> Copied packages to /Users/fukuyamaken/Projects/electron/electron-starter-master/static/components

Running "build" task

Running "coffee:glob_to_multiple" (coffee) task

Running "cson:glob_to_multiple" (cson) task
>> 3 files compiled to JSON.

Running "generate-license:save" (generate-license) task

Running "copy-info-plist" task

Running "set-version" task

Running "generate-asar" task
Done, without errors.

かなり時間がかかりましたがDone, without errorsって出てるしうまくいってそうです。

script/run

いよいよ実行です。

# ./script/run
Running: /var/folders/v_/m86vd1ts65b03qdd_1984t340000gn/T/example_app-build/example_app.app/Contents/MacOS/example_app -r .
{"_":[],"d":false,"dev":false,"h":false,"help":false,"t":false,"test":false,"v":false,"version":false,"r":".","resource-path":".","resourcePath":".","$0":"/private/var/folders/v_/m86vd1ts65b03qdd_1984t340000gn/T/example_app-build/example_app.app/Contents/MacOS/example_app -r"}

App load time: 941ms

[29627:0507/065643:INFO:renderer_main.cc(212)] Renderer process started

スクリーンショット 2015-05-07 20.54.59

今回はうまくいきましたね。原因究明まではあまりしたくないので、とにかく今はnode v0.10.xでやるのが吉のようですね!

Written on May 7, 2015
このエントリーをはてなブックマークに追加