a l p o r t で簡単にシリアル通信ができた。 実 装はJS のみで可能。 ネイティブモジュー ルなのでリビルドして Electron で利用した。 リビルドには e l e c t r o n r e b u i l d を利用した。 $ n p m i n s t a l l s a v e d e v e l e c t r o n r e b u i l d $ . / n o d e _ m o d u l e s / . b i n / e l e c t r o n r e b u i l d 10
e r i a l p o r t が Electron に対応していなかったのでリビルドした モジュー ルを読み込めない問題があった。 ビルド結果の出力先のディレクトリディレクト リ名を期待する名前に変更して対応。 https://github.com/electron/electron- rebuild/issues/33 現在(v2.1.2 以降) は対応済み。 n o d e p r e g y p (v0.6.25 以降) を利用しているので大丈夫。 11
t r o n r e b u i l d を利用するのがもっとも簡単な方 法 ネイティブモジュー ルが Electron 未対応の場合、 n o d e p r e g y p に依存している場合は、 e l e c t r o n r e b u i l d v1.1.0 以降なら p r e g y p f i x オ プションで対応可能な場合もある。 12
a s a r アー カイブ内 にあるので、 実際にファイルシステム上はファイ ルとして存在しないのでエラー になる。 実行時にファイルシステム上にサブプロセスが読 み込むファイル群のコピー を作成して対応。 単一ファイルなら c h i l d _ p r o c e s s . e x e c F i l e が使え る。 14