重写我的串口助手之前在学校用nodejs帮同学开发了一个串口调试助手,但是是web版的,后面需要启动一个nodejs服务器,有在浏览器中输入点击网址可以看到我的界面,配置nodejs环境。当时我和同学都觉得这样有点烦,还不如直接创建一个桌面版,双击运行就可以了,现在周末没事做,就准备把之前的串口助手改成桌面应用,正好是学习electron的好时机。我在安装依赖包时遇到的问题其实就是在安装serialport包时遇到的问题,因为只有这个包是node.js的c++扩展包。之前写过网页版的串口助手,遇到安装失败的问题。查阅资料后发现nodejs有c/c++等扩展包,因为和平台有关,需要重新编译安装。编译需要依赖visualc++和Python2.7这两个环境,因为npm安装是在命令行操作的,所以需要在路径中加入vs和py。这样在安装过程中如果遇到c/c++文件,可以直接调用编译。然后使用npminstallserialport--save-dev来安装它。被忽视的快捷方式其实我不太愿意安装vs+py。毕竟,我只是想安装一个npm包。我为什么要把它弄得这么恶心。后来我听说serialport包在它的github版本中提供了预构建文件。这个文件是serialport根据各种os+v8版本为我们编译的。安装这个包的时候,也会去下载这个文件。如果这个文件可以下载到,那你就完全不用走vs+py编译安装的路子了,直接用就可以了。所以为了能下载,我在本机的命令行窗口设置了一个代理,设置http_proxy=127.0.0.1:1080(当然你这里得有自己的防火墙服务器)设置https_proxy=127.0。0.1:1080然后执行npminstallserialport--save-dev经验证,这里不用安装vs+py也能安装成功。桌面版的串口助手是快捷方式,为什么不能用?之前做桌面版串口助手的时候,因为用的是electron,所以按照文档安装了electron-prebuilt。这个包使用的是自己内置的v8版本(这个包内置的v8版本不一定和你安装的nodejs使用的v8版本一样)但是如果不涉及c/c++扩展包,我可以直接开始编码。但是因为恶心的c/c++扩展包serialport,只好安装electron-rebuild包,使用electron-rebuild重新编译,让serialport包原有的预编译文件满足electron自带的v8版本。(因为这里没有prebuild版本可用,上面说的快捷方式这里不好用,看来安装vs+py的路还是免不了)重新编译一步步走,./node_modules/.bin/electron-rebuild.cmd输入这个命令后,等了半天报错。还好文档里有说明,不然估计我这会儿就乱套了。如果你有一个很好的node-gyp配置,但你在Windows上看到一个关于缺少元素的错误,比如“CouldnotloadtheVisualC++component“VCBuild.exe””,尝试在npm脚本中启动electron-rebuild:“scripts”:{"rebuild":"electron-rebuild-f-wyourmodule"}'`靠,我说的和我一样,改命令看看./node_modules/.bin/electron-rebuild.cmd-f-wserialport终于出来了,√RebuildComplete找了一个小demo,测试了electron-quick-start-serialport,发现一点问题都没有,看来休息完我可以开始重写我的串口助手了,我以后得研究node和c/c++扩展包了。
