[Electron] Hello World的なもの(3) パッケージングで作ったプロジェクトをベースにSqlite3を使うプロジェクトを作ってみる。

Sqlite3をインストールする。

npm install sqlite3 -S
npm install @types/sqlite3 -D

electron-rebuildをインストールする。

npm install electron-rebuild -D

electron-rebuildはネイティブコードを含むモジュールをElectronで使えるようにリビルドするツールだ。
インストール後、electron-rebuildを実行してリビルドする。

npx electron-rebuild -f

sqlite3を含めないようにwebpackの設定を変更する。次のようにexternalsを追加する。

  externals: {
    sqlite3: "commonjs sqlite3"
  }

これでとりあえず準備完了。

レンダラープロセスでsqlite3を使う。ここはアップロードしたソースを参照してくれ。

これで、

npm run build

でビルドして、

npm run start

で実行できる。

元のプロジェクトでは、ビルド後、実行するのに必要なファイルをdistフォルダに作られるようにしたが、sqlite3のモジュールがdistフォルダには用意されていないので、パッケージングするには、distフォルダにsqlite3のモジュールをインストールする必要がある。

src/package.jsonのdependenciesのsqlite3を追加する。
ビルド後、distフォルダでnpm installを実行してプロジェクトのフォルダでnpx electron-rebuild -f -m dist/を実行してモジュールをリビルする。

これでelectron-packagerでパッケージングする準備ができたので、electron-packagerでパッケージングする。

変更したソースをダウンロードできるようにしといた。

と、書いたところで、WindowsとLinuxも試しとかんと、と思いためてしてみると・・・
Windowsでうまいこといかん!
Windowsの場合は、管理者として実行したコマンドプロンプトでnpm install --global --production windows-build-toolsを実行し、windows-build-toolsをインストールすればいいらしいんだけど、うちのWindowsでは途中で止まっていつまでたっても(一晩待った)終わらなかった。そのうち調べて解決しないと・・・

あと、Windowsの場合って書いたけど、macOS、Linuxの場合もCコンパイラやPythonなんかが必要なんでインストールする必要がある。Pythonは標準で入ってそうだけど。




楽天Kobo