状況
- electron.js (v11) + better-sqlite3(v7.1.0)で発生した。
- better-sqlite3をrequireすると下記のエラーが発生する。
- エラーメッセージ :
TypeError: Cannot read property 'indexOf' of undefined
- electron.js (v6) + better-sqlite3(v5.4.0)では発生しなかった。アップデートしたら発生する。
現象について補足
bindingsでnode_modulesディレクトリ内にあるbetter_sqlite3.nodeを読み込むところで失敗している。モジュールがない、ビルドできてないかと思ったが、better_sqlite3.nodeは存在している。
対策
vue.config.jsに設定を追加する。
#vue.config.js
pluginOptions: {
electronBuilder: {
externals: ['better-sqlite3']
}
}