2

改写我的串口助手

之前在学校用nodejs帮同学开发了一个串口调试助手,但是那个是网页版本的,后面要启一个nodejs的服务器,并且还要在浏览器中输入一下网址,才可以看到我的界面,并且还要配置nodejs的环境。当时我和我同学都觉得这个有点烦了,还是直接搞个桌面版的痛快,双击运行就好了,现在周末闲着没事,准备把之前的串口助手改成桌面应用,也正好学习下electron

写在之前

安装依赖包的时候遇到的问题

其实就是安装 serialport 这个包时遇到的问题,因为只有这一个包是 nodec++ 扩展包。

网页版串口助手

之前编写的也遇到过安装失败的问题,后来查阅资料才知道nodejs对于c/c++ 这类的扩展包,因为它们和平台相关,所以安装的话要重新编译。编译的话,就需要依赖visual c++Python2.7这两个环境,因为 npm 安装是在命令行中操作,所以需要将vspy添加到path中去。这样安装过程中遇到c/c++文件就可以直接调用它们进行编译了。
然后再用 npm install serialport --save-dev 安装就可以了。

被忽略的捷径

其实我是不太愿意安装vs+py的,毕竟我仅仅只是想安装一个npm包而已,为什么要搞得这么恶心。
在后来听说serialport这个包提供了prebuild的文件在它githubreleases中,这个文件是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测试用了下,发现终于没问题了。看来剩下来就能开始改写我的串口助手了。对于nodec/c++扩展包这块以后我也得好好研究下了。


youyu岁月
489 声望45 粉丝

不要用执行上的勤奋来掩盖思考上的懒惰