微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重建 Node 串行端口的最终 Electron/npm 步骤是什么?

如何解决重建 Node 串行端口的最终 Electron/npm 步骤是什么?

直到最近,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 中正确声明串行端口后确实有效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。