nw.js(node-webkit) node-serialport的替代方案
2017-07-15 22:17
435 查看
背景
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++新特性)
总之最后
4000
我是放弃了。
替代方案
nw.js本身是基于chrome的,chrome有原生的串口api可以调用,参见https://developer.chrome.com/apps/serialnode-serialport能够实现的功能全都有,而且比node-serialport要稳定。
相关文章推荐
- nw.js 打包白屏问题解决方案 node-webkit白屏
- nw.js node-webkit系列(10)Native UI API Clipboard的使用
- nw.js(node webkit)获取当前app所在的位置
- node webkit(nw.js) 设置自动更新
- nw.js node-webkit系列(4)Native UI API 概述和应用规范
- nw.js node-webkit系列(1)简单介绍及应用
- nw.js node-webkit系列(17)怎样打包和分发你的应用
- nw.js node-webkit系列(25)child_process中spawn和exec方法的使用
- nw.js(node-webkit)桌面客户端
- nw.js node-webkit系列(23)如何检查任务管理器运行了哪些进程
- nw.js node-webkit系列(24)如何对本地文件读写
- nw.js node-webkit系列(2)nwjs相关教程
- nw.js node-webkit系列(20)拖动文件到页面并读取文件信息
- nw.js node-webkit系列(5)Native UI API Window的使用
- nw.js node-webkit系列(12)Native UI API File dialogs的使用
- node-webkit is renamed NW.js
- NW.js(node-webkit)桌面应用(app)开发之环境配置
- nw.js node-webkit系列(15)如何使用内部模块和第三方模块进行开发
- RegexKit: A Regular Expression Toolbox Based On NW.js(Node-Webkit) And Other Greate Open Source Projects.
- nw.js node-webkit系列(8)Native UI API MenuItem的使用