nw.js中引用lwip模块遇到的问题

lwip是node.js的一个轻量级的图片处理器。它能对图片进行放大,旋转,切割,格式转换,调节亮度/对比度/灰度,高斯模糊,RGB通道等等一系列操作。Github上的star已达到1986,使用方法也特别简单。

这是Github地址:github.com/EyalAr/lwip

笔者是在Win10平台上开发nw.js项目,在引用lwip的过程中遇到了些问题:

npm install lwip --save

下载失败,出现以下报错

nw.js中引用lwip模块遇到的问题_第1张图片

导致的原因是:(1)python版本高于3.0 (2)全英文路径 (3)未安装VS (4)未安装node-gyp 

以下是亲测可行的方法:

修改全英文路径

安装Python 2.7 ( v3.~.~  该模块不支持 )

$ npm install -g node-gyp

下载   Visual C++ Build Tools (选择默认安装即可)

进入cmd

npm config set msvs_version 2015

$ node-gyp --python /path/to/python2.7

$ npm config set python /path/to/executable/python2.7

再次执行

npm install lwip --save

下载成功,在nw.js项目中引用

var lwip = require("lwip");

运行nw.js项目,出现以下报错

nw.js中引用lwip模块遇到的问题_第2张图片

原因是引用node.js的原生插件,出现错误,Google以后,得知要引用lwip,需要使用node-gyp对lwip进行编译

$ cd my_node_addon  (管理员权限打开cmd,进入到 lwip 的根目录)

$ node-gyp configure

$ node-gyp configure --msvs_version=2015

$ node-gyp build

官网上说这样就能require成功了,不过在我的win10平台的nw.js项目中仍然报错,然后Google找到了专门为nw.js服务的原生插件编译工具 nw-gyp ,它其实是node-gyp的一种hack工具

在Window平台上,我们需要更换

%APPDATA%\npm\node_modules\node-gyp\src\win_delay_load_hook.c 文件为

win_delay_load_hook.c

接下来就是安装使用nw-gyp

$ npm install -g nw-gyp

$ nw-gyp --python /path/to/python2.7

$ npm config set python /path/to/executable/python2.7

$ cd my_node_addon   (管理员权限打开cmd,进入到 lwip 的根目录)

$ nw-gyp clean

$ nw-gyp configure --target=<0.26.3 or other nw version> ----msvs_version=2015

(--target,--mmsvs_version尤其重要,缺一不可,缺了就会报错,0.3.2是nw.js的版本号,2015是先前下载的VS的版本号)

$ nw-gyp build --target=0.26.3

编译成功后,完美运行

参考资料:

github.com/EyalAr/lwip

github.com/nodejs/node-gyp#installation

nwjs.readthedocs.io/en/nw14/For%20Users/Advanced/Use%20Native%20Node%20Modules/

github.com/nwjs/nw-gyp

你可能感兴趣的:(nw.js中引用lwip模块遇到的问题)