メインコンテンツへ飛ぶ

ネイティブ 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

Electron の手動ビルド