シリアル通信
n
o
d
e
s
e
r
i
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
Slide 11
Slide 11 text
node-serialport
の問題
開発開始当時(2015/11)
は
n
o
d
e
s
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
Slide 12
Slide 12 text
ネイティブモジュー
ルの利用
ABI
に違いがなければリビルドなしで使える場合も
あるけど、
基本はリビルドするのがオススメ。
e
l
e
c
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
にパッケー
ジングした場合にWSH
側で引数で
指定したスクリプトファイルが読み込めない。
サブプロセスに指定したパスは
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