Electron/Node.jsのABIバージョンの一覧と動的に取得すつためのモジュール

プログラミング

はじめに

Electronでアプリを作っていると、使っているモジュールの再ビルドなどが必要になるケースがあります。その際にはElectronとNode.jsのABIバージョンの情報が必要になります。

このABI (Application Binary Interface : アプリケーション・バイナリー・インターフェイス)のバージョンはElectronとNode.jsのバージョンで定められているのですが、情報が探し難かったので自分のための備忘録を兼ねてこの記事でまとめたいと思います。

ElectronのABIバージョン一覧

ElectronのリリースノートなどにもABIバージョンに関する記載がなかったので、一覧にしました。基本的にはElectronのメジャーバージョンで一意に決まるようですが、Electron 4.x.yだけマイナーバージョンでもABIバージョンが更新されているので注意が必要です。

ElectronバージョンABIバージョン
2.x.y57
3.x.y64
4.x.y<4.0.4未満>
64
<4.0.4以降>
5.x.y70
6.x.y73
7.x.y75
8.x.y76
9.x.y80

なお、この一覧は後述のnode-abiパッケージ内の情報を参照しました。

Node.jsのABIバージョン一覧

Node.jsに関しては、公式のリリース一覧を見れば確認することができます。「NODE_MODULE_VERSION」という列がABIバージョンだという説明があります。

[1]: NODE_MODULE_VERSIONは、Node.jsのABI(アプリケーションバイナリインタフェース)のバージョン番号を指します。このバージョンは、再コンパイルすることなくC++アドオンのバイナリーをロード可能か確認するために使われます。

https://nodejs.org/ja/download/releases/#ref-1

ABIバージョンを動的に取得するモジュール

ビルドの自動化などのために、動的にABIバージョンを取得して利用したいケースもあると思います。node-abiを使えばABIバージョンからElectron/Node.jsのバージョンを取得したり、逆にElectron/Node.jsのバージョンからABIバージョンを取得することができます。

コメント