2019年8月19日月曜日

electron + webpack + sequelize + sqlite3で「Please install sqlite3 package manually」と出たときの対応方法



 
記述量の少ない解決方法を見つけたので、備忘録を兼ねて共有します。

webpackでビルドしたelectronのmainプロセスを実行すると、こんなエラーが出ました。
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Please install sqlite3 package manually
    at ConnectionManager._loadDialectModule ..
    at new ConnectionManager ..
    at new SqliteDialect ..
    at new Sequelize ..
    ..

webpackのexternalsにsqlite3を含めると良いという情報を多く見つけたのですが、それでは解決しませんでした。

「webpack externals sqlite3」で検索していると、「sequelizeを使っている場合はwebpack configのexternalsにsequelizeを追加してみて」という書き込みを見つけました。

can not pack sequelize with sqlite3

module.exports = {
  // other configs ..
  externals: {
    "sequelize": "require('sequelize')",
  },
}

そのように記述してみたら見事動きました。

sqliteのエラーが出ますが、実はsequelizeの処理で詰まるために動かなかったように推測します。
原因を深くは追っていませんが、よりあえず動くようになって良かったです。

同様の内容をstack overflowにも投稿しました。
ElectronJs: please install sqlite3 package manually

0 件のコメント :