Electron项目使用@pdftron/pdfnet-node报NODE_MODULE_VERSION错误如何解决?
报错根因
该报错属于Node.js C++原生扩展的ABI版本不兼容问题:已安装的@pdftron/pdfnet-node原生模块是针对NODE_MODULE_VERSION 83的环境编译的,而当前Electron运行环境对应的NODE_MODULE_VERSION为87,二者版本不匹配导致模块无法加载。
注意:Electron内置的Node.js运行时ABI版本和本地安装的原生Node.js版本并不统一,错误提示中的默认
npm rebuild命令会按本地Node.js版本重编译,无法适配Electron环境,直接执行无效。
解决方案
方案1:使用electron-rebuild重编译模块
electron-rebuild是专门为Electron环境重编译原生Node模块的工具,操作步骤如下:
- 安装electron-rebuild为开发依赖:
npm install --save-dev electron-rebuild - 执行针对
@pdftron/pdfnet-node的重编译命令:npx electron-rebuild @pdftron/pdfnet-node
方案2:安装时指定Electron运行时参数
如果方案1无效,可以先删除当前项目的node_modules文件夹、package-lock.json或yarn.lock锁文件,再执行如下安装命令,安装时直接指定运行时为Electron,替换命令中的你的Electron版本号为你项目实际使用的Electron版本:npm install --runtime=electron --target=你的Electron版本号 @pdftron/pdfnet-node
方案3:匹配包版本和Electron版本
如果上述两种方案都执行失败,说明你当前使用的@pdftron/pdfnet-node版本本身不支持你项目的Electron版本,查找适配你Electron版本的@pdftron/pdfnet-node版本号,安装对应版本即可。
内容的提问来源于stack exchange,提问作者user15501498
相关产品推荐
相关产品推荐

