我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在测试jsencrypt代码的过程中,苏南大叔使用gulp来重新编译jsencrypt,所以全局安装了gulp。然而在gulpfile.js所在目录执行命令gulp的时候,出现了一个奇怪的报错信息:internalBinding is not defined。那么,如何解决这个问题呢?

苏南大叔:gulp编译,如何解决报错:internalBinding is not defined - gulp-natives
gulp编译,如何解决报错:internalBinding is not defined(图5-1)

本文测试环境:mac/gulp@2.2.0/native@1.1.6。本文的龙套项目为:

报错信息

缺少的模块叫做internalBinding,报错信息如下:

internal/util/inspect.js:31
const types = internalBinding('types');
ReferenceError: internalBinding is not defined

苏南大叔:gulp编译,如何解决报错:internalBinding is not defined - gulp-natives-issue
gulp编译,如何解决报错:internalBinding is not defined(图5-2)

解决方案

解决方案就是:在当前项目里面,安装natives。截至到发稿,natives的最新版本号为1.1.6

npm install natives -D

苏南大叔:gulp编译,如何解决报错:internalBinding is not defined - gulp-natives-solve
gulp编译,如何解决报错:internalBinding is not defined(图5-3)

因为默认的npm i不添加-g的话,就是默认保存到当前项目的。但是,-D是添加到否添加到devDependencies里面,而不加-D就是添加到dependencies里面。对于本文来说,推荐使用-D参数。

苏南大叔:gulp编译,如何解决报错:internalBinding is not defined - devdependencies
gulp编译,如何解决报错:internalBinding is not defined(图5-4)

安装好这个natives模块后,就可以解决internalBinding is not defined的问题,顺利使用gulp了。

苏南大叔:gulp编译,如何解决报错:internalBinding is not defined - gulp-natives-solve-2
gulp编译,如何解决报错:internalBinding is not defined(图5-5)

总结

据说这个问题是最新版的gulp才会出现的问题。版本升级需谨慎啊... 好,如果您想知道更多有关gulp的信息,请点击苏南大叔的博客文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   gulp