Electronでnodegitを使おうとして、どの参考記事も助けにならなかったので記事を残します。
今回はこの原因だっただけでまた将来的には別の原因でどハマりする可能性があります。
これらの情報は古くなっているのか、そのままの方法でやっても全くうまくいく気配がありませんでした。
手元のNodeが4なので0.12に戻してみたり、色々やってみたのですが結局ダメ。
Upgrade notice: (from the above link)
Most native modules are broken because of io.js upgrade, modules writers need to use NAN v2 to rewrite the modules.
これが答えでした。
Electronで後方互換のないバージョンアップが行われたようです。
「Most native modules are broken because of io.js upgrade, module writers need to use NAN v2 to rewrite the modules」
とのことで、多くのネイティブモジュールとの互換性を失ってしまった(NANというパッケージの互換性がなくなった)
現在リリースされている最新の0.4.1ではnanの1に対応している
なので「nan2に対応しなければ動かないよ」に該当し、動かない。
この互換性の差が具体的にどうビルドの失敗に繋がるのかは未調査。現状そこまで追る気がしない
npm install
する方法を探るnpm i -S https://github.com/nodegit/nodegit/tarball/ece6f2413073f4033316a7c36006a586b7bd94ce
で解決しました。
Issueにまとめてあります。 このような感じ になっていました。
手元の環境はこのような感じです。
$ node -vv0.12.7$ npm -v2.11.3$ $(npm bin)/electron -vv0.32.3
nodejsのバージョンは4.1.1
でも試してみましたが、問題なくビルドできました。
なのでnodejsのバージョンは今回の件に関係ないようです。
Electronの0.31.*以降を使っている場合、nodegitはリリースされているバージョンではダメで、
まだリリースされていないmasterのコミットを引っ張ってこないとダメなようです。
このコミットの入ったリリースが楽しみです。
以上、備忘録でした。