在nw.js要如何优雅的使用node-printer

这个坑是沉痛的,由于陷入之前的处理问题的惯性操作而浪费了三天时间,四个深夜凌晨2点。特此记录一下。 先来说说问题 项目用户端使用到nw.js来构建跨平台桌面应用程序,其中涉及到热敏票据的打印。对于这种比较冷门的工具来说,网上各种支持真的是有限。对于打印功能,各种寻找之后,发现只有一个node-printer是相对有点资料可用,看到这些资料之后,就开始入坑了。 一号坑 关于这个node-printer的使用相关文章,都是一些很老的文章,而且非常少。找到的一些内容也是千篇一律。最后总结就是,按照百度出来的文章操作,基本不可能编译成功。 二号坑 这个坑是node-printer的坑。这个库在GitHub上是有一直更新,但NIMA在npmjs上,它上传的并不是最新版本,而是三年前的版本。所以导致直接使用npm install printer下载下来的版本一直就是老版本。如果需要用到最新版本必须使用 npm install git+https://github.com/thiagoelg/node-printer.git 三号坑 这个就是自己思维惯性的坑了。 由于这些文档都是英文的,也不是看不懂,而是看起来费劲,所以就想着走走捷径。照着百度上面说的各种错误解决方案就是一通骚操作,最后结果证明,对于热门的工具,你可以相信百度。但是对于这种冷门的东西,那就只能参考了,这是血的教训。 最后上硬菜 在nw.js要如何优雅的使用node-printer 一、首先你必须要先看一个nw.js官方的文档Use Native Node Modules。 如果没有回过头来认真看着这个nw.js文档,这会我估计还在抓耳挠腮想着如何解决问题。这个文档告诉了我们如何在nw.js使用原生node模块。这个文档开头就给我们指出的了操作方法。 image.png 如果我们在最新版本的nw.js中编译node的原生模块,那么我们要保证nw.js运行环境的node版本需要和我们开发环境的node版本保持一致。比如我们查看我们nw.js的环境信息如下 image.png 图中显示当前nw.js环境的node版本为13.1.0。所以就得保证本机开发环境的node版本也是这个。 二、本机需要有Visual C++ Build Tools环境 如果你的开发电脑有安装过Visual Studio那就可以跳过这一步,如果没有那就需要安装。建议使用windows-build-tools来安装这个环境。 npm install --global windows-build-tools --vs2015 这个预计会比较耗时,网络不好的情况可能还需多尝试几次。 三、安装node-printer npm install git+https://github.com/thiagoelg/node-printer.git 四、安装node-gyp npm install --global node-gyp 五、nw.js文档中提到的如何hack node-gyp image.png 最后一步 进入cmd执行 项目路径\node_modules\printer>node-gyp rebuild 出现如下输出标识编译成功 image.png Test 在nw项目的页面中编写代码 启动nw程序F12打开devtool,看到如下输出表示node-printer编译成功 image.png Tips: nw需要下载sdk版本才有devtools,否则f12打开是空白。 亲~~ 码字分享不容易,如果本文恰好给你解决了问题,就请给个小❤❤吧,如果还有哪里写的不到位,可以评论留言我们一起讨论完善。笔芯....

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):