美文网首页
nw.js中引用lwip模块遇到的问题

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

作者: 龙黎_ | 来源:发表于2017-11-22 16:18 被阅读67次

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

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

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

    npm install lwip --save

    下载失败,出现以下报错

    导致的原因是:(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项目,出现以下报错

    原因是引用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模块遇到的问题

          本文链接:https://www.haomeiwen.com/subject/twtovxtx.html