理解electron NODE_MODULE_VERSION?
本文转载自:https://newsn.net/
在涉及到electron
的第三方程序addon
的时候,经常会出现个rebuild
的概念。而在electron-rebuild .
的时候,就有不小的概率会被提示NODE_MODULE_VERSION
不匹配。这个问题该如何理解呢?注意看措辞,苏南大叔说的是“理解”,并不是解决。因为解决的话,说来话长,苏南大叔还暂时不想说这个话题。
本文测试环境,mac
/electron
/node
。
引子
下面先放个报错截图,本文就是从这个报错中引申出来的。报错内容如下:
Uncaught Error: The module 'addon.node' was compiled against a different Node.js version usingNODE_MODULE_VERSION 69. This version of Node.js requires NODE_MODULE_VERSION 70. Please try re-compiling or re-installing the module (for instance, using `npm rebuild` or `npm install`).
那么,如何理解有点匪夷所思的NODE_MODULE_VERSION
呢?请听苏南大叔讲述本篇内容。
node
对应NODE_MODULE_VERSION
破局的关键线索来自下面的这个页面:
从图中可以看到,每个Node.js
的版本,都有一个NODE_MODULE_VERSION
做对应。而每个NODE_MODULE_VERSION
,都有好几个nodejs
的版本做对应。
根据上述内容,总结一下的话,node.js
和NODE_MODULE_VERSION
的对应关系如下:
当然,还有更低版本的node
(从网页上还可以看到,node.js
有段时间叫做io.js
),苏南大叔就没有放在上表里面了。可以得出的结论是:从nodejs
的5.0
系列开始,大版本号的变化,就意味着NODE_MODULE_VERSION
的变化。
electron
对应NODE_MODULE_VERSION
理解这个electron
对应NODE_MODULE_VERSION
的关系之前,您需要先理解好,您运行的到底是哪个electron
。具体见下面这篇文字:
换算一下
每个electron
都对应着一个node
版本号,而每个node
又对应着一个NODE_MODULE_VERSION
。所以,该如何查看electron
对应的node
版本呢?答案就是打印一下下面的值:
process.versions.node
比如:下面的截图,是[email protected]
下的执行结果。可以看到process.versions.node
的值,和node -v
的值并不一样。
直接获得
当然,还可以直接打印下面的这个值,就可以免去换算的痛苦。
process.versions.modules
可以直观的看到:[email protected]
对应的NODE_MODULE_VERSION
是73
。
列表
要是大家懒得下载测试的话,下面的链接里面,你翻翻也是可以得出一定的结论的。
结束语
在electron
开发过程中,addon
的开发(利用)并不是一帆风顺的。对于某个addon
,不同的环境下,可能会得出成功或者失败的完全不同的实验结论。所以,请大家冷静面对rebuild
失败的情况。
以上是 理解electron NODE_MODULE_VERSION? 的全部内容, 来源链接: utcz.com/a/118621.html