这个坑是沉痛的,由于陷入之前的处理问题的惯性操作而浪费了三天时间,四个深夜凌晨2点。特此记录一下。
先来说说问题
一号坑
二号坑
npm install
三号坑
这个就是自己思维惯性的坑了。
由于这些文档都是英文的,也不是看不懂,而是看起来费劲,所以就想着走走捷径。照着百度上面说的各种错误解决方案就是一通骚操作,最后结果证明,对于热门的工具,你可以相信百度。但是对于这种冷门的东西,那就只能参考了,这是血的教训。
最后上硬菜
在nw.js要如何优雅的使用node-printer
一、首先你必须要先看一个nw.js官方的文档。
如果没有回过头来认真看着这个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环境
npm install --global windows-build-tools --vs2015
这个预计会比较耗时,网络不好的情况可能还需多尝试几次。
三、安装node-printer
npm install
四、安装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项目的页面中编写代码
<script>
var printer = nw.require("printer");
console.log(printer);
</script>
启动nw程序F12打开devtool,看到如下输出表示node-printer编译成功
image.png
Tips:
nw需要下载sdk版本才有devtools,否则f12打开是空白。