改写我的串口助手

发布时间:2019-06-29 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了改写我的串口助手脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

改写我的串口助手

之前在学校用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版本可用,所以上面说的捷径@H_62_126@在此处就不好使了,看来还是绕不过安装 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++扩展包这块以后我也得好好研究下了。

脚本宝典总结

以上是脚本宝典为你收集整理的改写我的串口助手全部内容,希望文章能够帮你解决改写我的串口助手所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。