smellman's Broken Diary

クソみたいなもんです

WindowsのElectronでsqlite3が動かない人のためのバッチファイル

タイトルとおりです。


Electron + sqlite3 for windows

これは、配布されているnode.jsとElectronに入ってるnodeが違うので、Electron用にビルドをし直す必要があるんだけど、本来なら electron-rebuild で動くと思ったんだけど、 node_modules/sqlite3/lib/bindings/electron-0.36.4-win32-ia32 とかいうディレクトリになってしまって not found になってしまうので、自力でビルドしてみたのをバッチファイルにしてみた。

バッチファイルはnodeのバージョンとかアーキテクチャが決め打ちなので、47とかいう数字は各自の環境に置き換えてほしい。たぶんnode-sqlite3入れた時と同じディレクトリになるようにすればいいかと思う。ia32の環境でx64でビルドしたいとかいうパターンは未確認です。

元ネタはこのサイトになります。

Using Node_sqlite3 With Electron | VerySimple

その他ハマったことなど

  • node_module\.bin\electron_rebuild.cmd を動かしてもすぐ終了してしまって、 -f オプション付けないとそもそも動かないことになかなか気づかなかった。
  • Microsoftのnode.jsのガイドライン を参考にセットアップしたところ、VC++ Build Toolsだと MSB3428 で動かなくて、VS2015だとsqlite3の相性が悪くビルドできないので、 node-gyp のインストールドキュメント を参考にVS2013 Expressにした。ちなみにうちの環境は Windows 7 です。
  • VS2013 を入れた後でも動かなくって、どうもレジストリの内容が反映されていなく、再起動したら動いた(たぶんこれと同じケース)
  • 納品日当日にこんな状態とか非常にダメです