改写我的串口助手
改写我的串口助手
之前在学校用nodejs
帮同学开发了一个串口调试助手,但是那个是网页版本的,后面要启一个nodejs
的服务器,并且还要在浏览器中输入一下网址,才可以看到我的界面,并且还要配置nodejs
的环境。当时我和我同学都觉得这个有点烦了,还是直接搞个桌面版的痛快,双击运行就好了,现在周末闲着没事,准备把之前的串口助手改成桌面应用,也正好学习下electron
。
写在之前
安装依赖包的时候遇到的问题
其实就是安装 serialport
这个包时遇到的问题,因为只有这一个包是 node
的 c++
扩展包。
网页版串口助手
之前编写的也遇到过安装失败的问题,后来查阅资料才知道nodejs
对于c/c++
这类的扩展包,因为它们和平台相关,所以安装的话要重新编译。编译的话,就需要依赖visual c++
和 Python2.7
这两个环境,因为 npm
安装是在命令行中操作,所以需要将vs
和py
添加到path
中去。这样安装过程中遇到c/c++
文件就可以直接调用它们进行编译了。
然后再用 npm install serialport --save-dev
安装就可以了。
被忽略的捷径
其实我是不太愿意安装vs+py
的,毕竟我仅仅只是想安装一个npm
包而已,为什么要搞得这么恶心。
在后来听说serialport
这个包提供了prebuild
的文件在它github
的releases
中,这个文件是serialport
帮我们依据各种的os + v8
版本编译好了的,安装的此包的时候,它也会预先去下载此文件,如果此文件能下载下来就根本不需要走vs+py
编译安装的路线,直接就可以用了。所以为了它能下载下来 我在我本机的命令行窗口设置了代理,set http_proxy=127.0.0.1:1080
(当然此处你得有自己的翻墙服务器啊)set https_proxy=127.0.0.1:1080
然后执行 npm install serialport --save-dev
经过验证 此处不装vs+py
也是可以安装成功的。
桌面版串口助手
捷径啊,你咋不好使了呢
搞桌面版串口助手的时候,因为用到了electron
,所以按照文档来,我安装了electron—prebuilt
,这个包使用了自己内置的v8
版本(这个包内置的v8
版本不一定和你安装的 nodejs
使用的v8
版本一样)
但是如果不涉及到c/c++
扩展包,我直接开始编码就好了。但是因为有serialport
这个恶心的c/c++
扩展包,
所以我得安装electron-rebuild
这个包并使用electron-rebuild
来重新编译下,使得serialport
这个包原来预编译好的文件满足electron
自己内置的v8
版本。(因为此处没有prebuild
版本可用,所以上面说的捷径在此处就不好使了,看来还是绕不过安装 vs+ py
这条路了)
重新编译下吧
一步步来,./node_modules/.bin/electron-rebuild.cmd
输入此命令后,等了半天又给我报错。 还好文档上面有说明,要不我估计此刻我就乱了
If you have a good node-gyp config but you see an error about a missing element on Windows like "Could not load the Visual C++ component "VCBuild.exe" , try to launch electron-rebuild in an npm script: "scripts": { "rebuild" : "electron-rebuild -f -w yourmodule" }'`
我靠,说的和我一样啊,于是命令换下看看./node_modules/.bin/electron-rebuild.cmd -f -w serialport
终于出来了,√ Rebuild Complete
找了个小demo
,electron-quick-start-serialport
测试用了下,发现终于没问题了。看来剩下来就能开始改写我的串口助手了。对于node
和c/c++
扩展包这块以后我也得好好研究下了。