直到最近,Node - was compiled against a different Node.js version using NODE_MODULE_VERSION 51中描述的指南已成功克服了以下“npm start run”失败:
App threw an error during load
Error: The module '\\?
\G:\CodeDev\AlfatronController2\node_modules\@serialport\bindings\build\Release\bindings.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 87. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at process.func [as dlopen] (electron/js2c/asar_bundle.js:5:1846)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1138:18)
at Object.func [as .node] (electron/js2c/asar_bundle.js:5:1846)
at Module.load (internal/modules/cjs/loader.js:935:32)
at Module._load (internal/modules/cjs/loader.js:776:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12789)
at Module.require (internal/modules/cjs/loader.js:959:19)
at require (internal/modules/cjs/helpers.js:88:18)
at bindings (G:\CodeDev\AlfatronController2\node_modules\bindings\bindings.js:112:48)
at Object.<anonymous>
(G:\CodeDev\AlfatronController2\node_modules\@serialport\bindings\lib\win32.js:1:36)
具体来说,建议的命令顺序 rm -rf node_modules
rm package-lock.json
npm i
./node_modules/.bin/electron-rebuild
在最近升级到Electron 12.0.0之前,它已经可靠地工作了(几个月),但是重建(现在仅需几秒钟即可完成)不再克服所报告的故障。应该执行什么命令顺序来克服此问题?
为什么以前的方法不再有效,或者存在什么剩余条件来标记错误NODE_MODULE_VERSION 72与所需的NODE_MODULE_VERSION 87?
在Windows 10下部署的软件版本为:
Node: 12.18.3
npm: 7.6.0
electron: 12.0.0
electron-rebuild: 2.3.5
serialport: 9.0.7
最佳答案
我的错误:在package.json文件中的“devDependencies”下而不是“dependencies”下声明了serialport。
虽然错误报告有些晦涩,但是在package.json中适当声明了串行端口之后,推荐的命令序列仍然有效。
关于node.js - 重建Node串行端口的最终Electron/npm步骤是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66546943/