问题描述
直到最近,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”下声明了串行端口。
虽然错误报告有点模糊,但推荐的命令序列在 package.json 中正确声明串行端口后确实有效。