苏南大叔在上一篇文章中介绍了对NODE_MODULE_VERSION的一些理解,然后给出了两个苏南大叔精心总结的对应关系表。那么,在本文中,苏南大叔介绍一个第三方库,可以通过node-abi来查询下述对应关系。分别是:

  • NODE_MODULE_VERSIONnode的对应关系
  • NODE_MODULE_VERSIONelectron的对应关系

苏南大叔:electron程序,node-abi查询NODE_MODULE_VERSION - electron-node-abi
electron程序,node-abi查询NODE_MODULE_VERSION(图5-1)

本文测试环境:macnode@10.11.0。据苏南大叔观察,NODE_MODULE_VERSION的另外一个名字就是abi。所以,在nodeelectron的世界里面,大家应该意识到:NODE_MODULE_VERSIONabi很可能是同一个事物。

基本描述

node-abi的主页面地址如下:

苏南大叔:electron程序,node-abi查询NODE_MODULE_VERSION - electron-node-abi-git
electron程序,node-abi查询NODE_MODULE_VERSION(图5-2)

使用方式上,需要先npm i

npm install node-abi

然后在代码里面,引用即可。

const nodeAbi = require('node-abi')

代码使用

苏南大叔:electron程序,node-abi查询NODE_MODULE_VERSION - electron-node-abi-code
electron程序,node-abi查询NODE_MODULE_VERSION(图5-3)

abi

nodeAbi.getAbi('7.2.0', 'node')
nodeAbi.getAbi('1.4.10', 'electron')

node版本号

nodeAbi.getTarget('51', 'node')

electron版本号

nodeAbi.getTarget('50', 'electron')

更多可用函数

在官方git说明里面,还可以看到其它的相关函数。but,苏南大叔认为可能也用不到。所以,大家可以自行去查看。

nodeAbi.allTargets
nodeAbi.deprecatedTargets
nodeAbi.supportedTargets
nodeAbi.additionalTargets
nodeAbi.futureTargets

组合查询源码

本文的代码,在纯正的node环境里面,也是可以运行的。当然,在electron的主进程和渲染进程里面,也都是可以使用的。本文,苏南大叔就以最基础的node环境来做演示。

可能在日常的应用中,更有可能出现的使用情况就是,已知abi的值,求合适的node或者electron。苏南大叔编写的一个可直接执行的代码如下:

苏南大叔:electron程序,node-abi查询NODE_MODULE_VERSION - electron-node-abi-code2
electron程序,node-abi查询NODE_MODULE_VERSION(图5-4)

abi.js:

newsn.net:这里是【评论】可见内容

使用方式是:

node abi <abi>

运行结果如图所示:

苏南大叔:electron程序,node-abi查询NODE_MODULE_VERSION - electron-node-abi-command
electron程序,node-abi查询NODE_MODULE_VERSION(图5-5)

一个结论

另外,根据查询结果以及苏南大叔的推算,对于addon编译来说,截至到发稿,最佳的组合可能是:node@10.16.2+electron@4.0.3+abi@64

这个结论,是苏南大叔自行猜测的,目前没有任何的理论依据。大家可以自行体会。估计上述结论是谬误的可能性也蛮大的。如果您有好的结论,欢迎给苏南大叔留言。

相关链接

结束语

在本文中,大家可以通过node-abi的源码可以发现,相关结果就是写死在代码里面的,所以,这个库如果没有人维护的话,也失去了存在意义了。更多electron相关经验文字,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

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

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

本站的忠实读者小伙伴,正在阅读下面这些文章: