electron程序,node-abi查询NODE_MODULE_VERSION
发布于 作者:苏南大叔 来源:程序如此灵动~
苏南大叔在上一篇文章中介绍了对NODE_MODULE_VERSION的一些理解,然后给出了两个苏南大叔精心总结的对应关系表。那么,在本文中,苏南大叔介绍一个第三方库,可以通过node-abi来查询下述对应关系。分别是:
NODE_MODULE_VERSION和node的对应关系NODE_MODULE_VERSION和electron的对应关系

本文测试环境:mac、node@10.11.0。据苏南大叔观察,NODE_MODULE_VERSION的另外一个名字就是abi。所以,在node和electron的世界里面,大家应该意识到:NODE_MODULE_VERSION和abi很可能是同一个事物。
基本描述
node-abi的主页面地址如下:

使用方式上,需要先npm i。
npm install node-abi然后在代码里面,引用即可。
const nodeAbi = require('node-abi')代码使用

求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。苏南大叔编写的一个可直接执行的代码如下:

abi.js:
使用方式是:
node abi <abi>运行结果如图所示:

一个结论
另外,根据查询结果以及苏南大叔的推算,对于addon编译来说,截至到发稿,最佳的组合可能是:node@10.16.2+electron@4.0.3+abi@64。
这个结论,是苏南大叔自行猜测的,目前没有任何的理论依据。大家可以自行体会。估计上述结论是谬误的可能性也蛮大的。如果您有好的结论,欢迎给苏南大叔留言。
相关链接
结束语
在本文中,大家可以通过node-abi的源码可以发现,相关结果就是写死在代码里面的,所以,这个库如果没有人维护的话,也失去了存在意义了。更多electron相关经验文字,请点击:
看一下代码
2
看图说话
学习
1