关于在nw里使用require('printer')和nw.require('printer')报错的问题

公司项目为了兼容xp所以使用nw.js(0.14.7-sdk),用到了printer模块(第三方的c++打印模块),在引入该模块的时候,使用了require导致一直报cannot find modul “.”,后来改用nw.require,结果可以引入该模块了,但是打包成exe文件后,又报了cannot not find module “printer”。
以下是我解决这个printer模块的流程和方法:

1.首先搭建好编译的环境,visual studio 2013或2015,python 2.7,然后按照作者说的安装全局的npm模块和打印模块,https://github.com/tojocky/node-printer
2.配置好环境变量、vs的版本、系统位数等,http://docs.nwjs.io/en/latest/For Users/Advanced/Use Native Node Modules/
3.安装好printer模块后,进行编译,注意如果你是要编译ia32的就安装

npm install printer --target_arch=ia32

//否则安装,具体看第一点的链接,记住编译的不同位数的系统,需要set npm_config_arch=x64(ia32或x64),这样子nw-gyp才会编译出适合当前位数的,否则会报错的

npm install printer --target_arch=x64

4.做完上面几点后,就是解决nw.require找不到模块的问题,在这里表明下我是用的是别人构建的项目vue-nw-seed,我的做法是以下的图片,把与printer模块相关的模块放到dist中,dist中添加一个node_modules的文件夹,这样打包的时候就可以找到模块了
在这里插入图片描述
5.解决中文乱码的问题,是添加上图的绿色的两个npm包,另外修改node-thermal-printer包下的lib里的core.js文件,目录和代码如下:
在这里插入图片描述

添加:iconv= require(‘iconv-lite’);
在这里插入图片描述
修改print和printIn这个两个方法,至此乱码问题解决
在这里插入图片描述

以上说明可能只适合0.14.7,如果大家还有更好的解决nw里使用printer模块打印的解决方案,烦请告知,谢谢!

猜你喜欢

转载自blog.csdn.net/qq_39702364/article/details/82800935