Knowledge / Electron / nodeモジュールのABI差によるnpm runエラー • 1 min read
nodeモジュールのABI差によるnpm runエラー
目次
事象
以下のようなエラーによって、npm runが通らない
The module xxx was compiled against a different Node.js version using NODE_MODULE_VERSION 140. This version of Node.js requires NODE_MODULE_VERSION 137. Please try re-compiling or re-installing the module
原因
例として、better-sqlite3のモジュールで発生しましたが、配布されているモジュールがnode向けにビルドされていて、electronにそのまま使えないためでした。
解決方法
electron-rebuildをnpm installして、対象モジュールについてrebuildするようにした所、解決しました。 package.jsonに以下のように書くと、npm installだけで自動的にリビルドされます。
"devDependencies": {
"electron": "^39.0.0",
"electron-builder": "^26.4.0",
"electron-rebuild": "^3.2.9"
},
"scripts": {
"start": "electron .",
"dev": "electron . --dev",
"build": "electron-builder",
"postinstall": "electron-rebuild -f -w better-sqlite3"
}