为什么NODE_MODULE_VERSION和Node的Electron版本不遵循Node的准则?

imzjd6km  于 2022-12-16  发布在  Electron
关注(0)|答案(1)|浏览(399)

例如,https://www.npmjs.com/package/electron-releases声明v19.1.3的NODE_MODULE_VERSION为106,节点的版本为16.14.2。
但是https://nodejs.org/en/download/releases/声明节点16.14.2对应于节点模块版本93。
退一步说,我试图避免错误was compiled against a different Node.js version using NODE_MODULE_VERSION 93. This version of Node.js requires NODE_MODULE_VERSION 106. Please try re-compiling or re-installing
虽然我可以重建,我想知道为什么电子的NODE_MODULE_VERSION似乎不遵循节点的准则,并可能以某种方式解决这个问题。
谢谢你。

eyh26e7m

eyh26e7m1#

由于Electron使用不同的Node ABI版本on purpose,因此该错误不可避免。链接文档指出,这是因为Electron与Node.js不同,因为在Node.js上下文中使用Chromium时进行了添加和修改,例如使用BoringSSL而不是OpenSSL。
因此,您必须重新构建本机模块,以便匹配Electron的ABI版本,并准备这些模块(以防万一)链接到BoringSSL而不是OpenSSL(如他们所期望的那样)。

相关问题