開發(fā)環(huán)境準(zhǔn)備
node-serialport是一個(gè)讓node可以訪問電腦串口設(shè)備的原生模塊,在electron環(huán)境下使用并不是簡單的npm install serialport
就能解決的事情。對于剛開始接觸node的人來說,不折騰一番基本上是不可能的。如果不明就里的一次性安裝成功,那下一次安裝多半也需要折騰的。
折騰過程中,免不了在Google,百度,GitHub上掘地三尺找解決方案。
本文盡可能的詳細(xì)介紹如何在electron中編譯并使用seialport。這里使用的系統(tǒng)環(huán)境是win10,需要準(zhǔn)備一下幾個(gè)材料:
node-gyp
-
python2.7
只能python2,不兼容python3 - Visual Studio Build Tools 或者 VS
如果你的機(jī)器上沒有安裝過VS的話,并且后面不會(huì)使用VS的話,建議安裝Visual Studio Build Tools即可。
開始編譯
在使用 Node 原生模塊一文里介紹好幾種使用原生模塊的方法。這里介紹前面兩種。
通過npm安裝
通過設(shè)置一些環(huán)境變量來實(shí)現(xiàn)npm的安裝。為了方便,可以選擇寫個(gè).bat文件來導(dǎo)入這些參數(shù)。
@call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
set PYTHON=D:\Python27
set npm_config_target=3.0.2
set npm_config_arch=x64
set npm_config_target_arch=x64
set npm_config_disturl=https://atom.io/download/electron
set npm_config_runtime=electron
set npm_config_build_from_source=true
這里需要注意前兩行的路徑。
第一行是Visual Studio Build Tools安裝后得到的一些批處理,主要是導(dǎo)入一些變量到cmd。
第二行是python的路徑,如果電腦有多個(gè)python的話,建議通過set的方式導(dǎo)入到本次命令行。
剩下的都是electron相關(guān)的參數(shù)。target版本號(hào)可以在首頁里面找。
到這里,可以嘗試執(zhí)行npm install serialport
來安裝serialport了。如果安裝過程不會(huì)報(bào)錯(cuò),則基本上OK了。
如果報(bào)錯(cuò)了,看一下報(bào)錯(cuò)信息。
如果是有404或者GET請求失敗,則是網(wǎng)絡(luò)問題。
另外,如果先前npm報(bào)錯(cuò)過,建議刪除node_modules文件夾重新npm install
。
使用electron-rebuild
使用rebuild(npm install electron-rebuild --save-dev
)來構(gòu)建serialport不需要設(shè)置太多變量,但是下面兩行少不了的。
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
set PYTHON=D:\Python27
接著執(zhí)行npm install
安裝各種依賴。安裝完后,執(zhí)行.\node_modules\.bin\electron-rebuild.cmd
重新編譯一下,serialport才能在electron里面使用。
編譯過程中可以會(huì)出錯(cuò),比如使用了python3或者msbuild版本錯(cuò)誤等一堆亂七八糟的錯(cuò)誤。具體看錯(cuò)誤日志定位問題才能解決。