nw.js(node-webkit) node-serialport的替代方案

来源:互联网 发布:告白夫妇网络漫画 编辑:程序博客网 时间:2024/05/20 03:07

背景

nw.js,前身叫做node-webkit,能够同时提供浏览器和node.js的运行环境。其本身具有跨平台能力,能够同时在windows/linux下运行,使得利用web前端开发桌面app成为了可能。
node-serialport则是一个第三方开源的串口模块,使得node能够访问系统的串口并进行流式读写。

nw.js的优势与不足

nw.js唯一的优势可能就是使得前端人员也能够参与桌面app的开发?
相比于成熟的.net/java,nw.js实在没有太大的亮点。在人手不足的时候,这是一个快速上手的低成本开发方案。

劣势就比较多了。

  • 体积臃肿,运行环境就高达六十多M
  • 没有能够打包为单一可执行文件的方法。

等等。我更觉得这玩意像个玩具。

node-serialport的坑

老实说,除非非用不可,不推荐用这个模块,编译非常的坑爹,尤其是配合windows 下nw.js用的时候。
感兴趣的可以直接点 https://github.com/EmergingTechnologyAdvisors/node-serialport/issues 看下有多少和build相关的问题。
因为是native模块,所以编译之前需要确认以下环境问题:

  • Python 2.7.3
  • Visual Studio 编译环境
  • node, npm, node-gyp, node-pre-gyp, nw-gyp

另外,系统环境需和nw.js保持一致,系统是x86的,请安装ia32版本的nw.js并编译调试;x64与之类似。

环境搭好了之后,编译的路上还有更多的坑。x64的编译比较顺利,麻烦的在x86。既然都跨平台了,那x86和x64肯定也要兼容啊,于是折腾了个虚拟机,装了x86 win7。
中间尝试的过程我就不写了,最后的结果如下:

  • Visual studio 2008 / 2017找不到MSbuild.exe
  • Visual studio express 2013 编译失败(不支持v8里使用的某个C++新特性)

总之最后我是放弃了。

替代方案

nw.js本身是基于chrome的,chrome有原生的串口api可以调用,参见https://developer.chrome.com/apps/serial

node-serialport能够实现的功能全都有,而且比node-serialport要稳定。

阅读全文
0 0
原创粉丝点击