ネイティブ Node モジュール
Electron ではネイティブ Node.js モジュールがサポートされていますが、Electron は (OpenSSL ではなく Chromium の BoringSSL を使用するなどの違いにより) 指定の Node.js バイナリと異なる アプリケーションバイナリインターフェイス (ABI) であるため、使用するネイティブモジュールを Electron 向けに再コンパイルする必要があります。 そうしなければ、以下の類のエラーが実行しようとしたときに発生します。
Error: The module '/path/to/native/module.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION $XYZ. This version of Node.js requires
NODE_MODULE_VERSION $ABC. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
ネイティブモジュールのインストール方法
ネイティブモジュールをインストールするにはいくつかの異なる方法があります。
モジュールをインストールして Electron をリビルド
他の Node プロジェクト同様にモジュールをインストールしてから、@electron/rebuild パッケージで Electron 向けにモジュールを再ビルドします。 このモジュールは自動で Electron のバージョンを取得でき、ヘッダのダウンロードやアプリ向けにネイティブモジュールを再ビルドする手動の手順を処理できます。 Electron Forge を使用している場合、このツールは開発モードでも頒布物の作成でも自動で使用されます。
例えば、スタンドアローンの @electron/rebuild ツールをインストールして、コマンドラインからモジュールを再ビルドするには、以下のようにします。
npm install --save-dev @electron/rebuild
# "npm install" を実行するごとに、こちらを実行します。
./node_modules/.bin/electron-rebuild
# Windows で問題が発生する場合はこちらをお試しください。
.\node_modules\.bin\electron-rebuild.cmd
Electron Packager などの他のツールの使用方法や統合の詳細については、そのプロジェクトの README をご確認ください。
npm を使用
いくつかの環境変数を設定することにより、モジュールを直接インストールするのに npm を使用できます。
例として、以下のように Electron 向けにすべての依存関係をインストールします。
# Electronのバージョン
export npm_config_target=1.2.3
# マシンのアーキテクチャ
export npm_config_arch=x64
export npm_config_target_arch=x64
# Electron のヘッダーをダウンロードします。
export npm_config_disturl=https://electronjs.org/headers
# node-pre-gyp にElectronのビルドであることを知らせる
export npm_config_runtime=electron
# node-pre-gypにソースコードからのビルドであることを知らせる
export npm_config_build_from_source=true
# すべての依存をインストールし、キャッシュを~/.electron-gypに保存する
HOME=~/.electron-gyp npm install