Node.js ネイティブアドオンと Electron 5.0
Electron 5.0でネイティブNode.jsアドオンの使用に問題が発生している場合は、最新バージョンのV8で動作するように更新する必要がある可能性があります。
さようなら v8::Handle
、こんにちは v8::Local
2014年、V8チームはローカルハンドル用にv8::Handle
を非推奨とし、v8::Local
を推奨しました。Electron 5.0には、ついにv8::Handle
を完全に削除したV8のバージョンが含まれており、まだこれを使用しているネイティブNode.jsアドオンは、Electron 5.0で使用するには更新する必要があります。
必要なコード変更は最小限ですが、v8::Handle
をまだ使用している*すべて*のネイティブNodeモジュールはElectron 5.0ではビルドに失敗し、変更する必要があります。良いニュースは、Node.js v12にもこのV8の変更が含まれるため、v8::Handle
を使用するモジュールは、今後のバージョンのNodeで動作するように*いずれにしても*更新する必要があるということです。
ネイティブアドオンを保守しています。どのように貢献できますか?
Node.jsのネイティブアドオンを保守している場合は、v8::Handle
のすべての出現箇所をv8::Local
に置き換えてください。前者は後者のエイリアスに過ぎなかったため、この特定の問題に対処するためには、他に変更を加える必要はありません。
また、Node.js自体の一部としてV8とは別に保守されており、ネイティブアドオンを基盤となるJavaScriptエンジンの変更から隔離することを目的としたN-APIについても調べてみるとよいかもしれません。詳細については、Node.jsのウェブサイトにあるN-APIのドキュメントをご覧ください。
助けて! アプリでネイティブアドオンを使用していますが、動作しません!
アプリでNode.jsのネイティブアドオンを使用していて、この問題が原因でネイティブアドオンがビルドされない場合は、アドオンの作成者に問題を修正した新しいバージョンがリリースされているかどうかを確認してください。リリースされていない場合は、作成者に連絡するか(またはプルリクエストを開く!)のがおそらく最善の方法です。