开发环境准备
node-serialport是一个让node可以访问电脑串口设备的原生模块,在electron环境下使用并不是简单的npm install serialport
就能解决的事情。对于刚开始接触node的人来说,不折腾一番基本上是不可能的。如果不明就里的一次性安装成功,那下一次安装多半也需要折腾的。
折腾过程中,免不了在Google,百度,GitHub上掘地三尺找解决方案。
本文尽可能的详细介绍如何在electron中编译并使用seialport。这里使用的系统环境是win10,需要准备一下几个材料:
node-gyp
-
python2.7
只能python2,不兼容python3 - Visual Studio Build Tools 或者 VS
如果你的机器上没有安装过VS的话,并且后面不会使用VS的话,建议安装Visual Studio Build Tools即可。
开始编译
在使用 Node 原生模块一文里介绍好几种使用原生模块的方法。这里介绍前面两种。
通过npm安装
通过设置一些环境变量来实现npm的安装。为了方便,可以选择写个.bat文件来导入这些参数。
@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安装后得到的一些批处理,主要是导入一些变量到cmd。
第二行是python的路径,如果电脑有多个python的话,建议通过set的方式导入到本次命令行。
剩下的都是electron相关的参数。target版本号可以在首页里面找。
到这里,可以尝试执行npm install serialport
来安装serialport了。如果安装过程不会报错,则基本上OK了。
如果报错了,看一下报错信息。
如果是有404或者GET请求失败,则是网络问题。
另外,如果先前npm报错过,建议删除node_modules文件夹重新npm install
。
使用electron-rebuild
使用rebuild(npm install electron-rebuild --save-dev
)来构建serialport不需要设置太多变量,但是下面两行少不了的。
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
set PYTHON=D:\Python27
接着执行npm install
安装各种依赖。安装完后,执行.\node_modules\.bin\electron-rebuild.cmd
重新编译一下,serialport才能在electron里面使用。
编译过程中可以会出错,比如使用了python3或者msbuild版本错误等一堆乱七八糟的错误。具体看错误日志定位问题才能解决。