改写我的串口助手

改写我的串口助手

之前在学校用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岁月
路漫漫其修远兮,吾将上下而求索

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

468 声望
42 粉丝
0 条评论
推荐阅读
Mongo的bulkWrite介绍
其中ordered是个需要注意的地方,根据官方描述:默认是ture,也就是按照顺序插入数据,如果中间出现错误则不会在继续执行如果是false,则mongo会采用并发的方式插入数据,中间出现错误对后续操作无影响

youyu岁月阅读 2.1k

从零搭建 Node.js 企业级 Web 服务器(十五):总结与展望
总结截止到本章 “从零搭建 Node.js 企业级 Web 服务器” 主题共计 16 章内容就更新完毕了,回顾第零章曾写道:搭建一个 Node.js 企业级 Web 服务器并非难事,只是必须做好几个关键事项这几件必须做好的关键事项就...

乌柏木60阅读 5.9k评论 16

从零搭建 Node.js 企业级 Web 服务器(一):接口与分层
分层规范从本章起,正式进入企业级 Web 服务器核心内容。通常,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,如下图:从上至下,抽象层次逐渐加深。从下至上,业务细节逐渐清晰。视图...

乌柏木39阅读 7.1k评论 6

从零搭建 Node.js 企业级 Web 服务器(二):校验
校验就是对输入条件的约束,避免无效的输入引起异常。Web 系统的用户输入主要为编辑与提交各类表单,一方面校验要做在编辑表单字段与提交的时候,另一方面接收表单的接口也要做足校验行为,通过前后端共同控制输...

乌柏木32阅读 6k评论 9

从零搭建 Node.js 企业级 Web 服务器(五):数据库访问
回顾 从零搭建 Node.js 企业级 Web 服务器(一):接口与分层,一块完整的业务逻辑是由视图层、控制层、服务层、模型层共同定义与实现的,控制层与服务层实现了业务处理过程,模型层定义了业务实体并以 对象-关系...

乌柏木32阅读 4.5k评论 9

从零搭建 Node.js 企业级 Web 服务器(十三):断点调试与性能分析
Node.js 官方提供了断点调试机制,出于安全性考虑默认为关闭状态,可以通过 node 参数 --inspect 或 --inspect-brk 开启,配合 IDE 能够非常方便地调试代码,本章就上一章已完成的项目 licg9999/nodejs-server-ex...

乌柏木29阅读 3.8k评论 9

从零搭建 Node.js 企业级 Web 服务器(八):网络安全
计算机网络依据 TCP/IP 协议栈分为了物理层、网络层、传输层、应用层,通常基础设施供应商会解决好前三层的网络安全问题,需要开发者自行解决应用层的网络安全问题,本章将着重表述应用层常见的网络安全问题及处...

乌柏木31阅读 5.7k评论 1

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

468 声望
42 粉丝
宣传栏