首页 > 解决方案 > Electron-Builder 为本地依赖安装了错误的预构建(串行端口)

问题描述

我一直在尝试将 serialport npm 模块集成到电子应用程序中。我将它导入到我的主进程中,并将其作为外部文件保存在我的 webpack 配置中。我正在使用以下内容:

从我的 package.json 中:

"scripts": {
    "start": "electron .",
    "build": "npm-run-all --parallel build:main build:renderer",
    "build:main": "webpack --config ./webpack.config.main.js --mode production",
    "build:renderer": "webpack --config ./webpack.config.renderer.js --mode production",
    "pack": "npm run-script build && electron-builder --dir",
    "dist": "npm run-script build && electron-builder"
  },
  "repository": "https://github.com/electron/electron-quick-start",
  "build": {
    "appId": "my_app",
    "files": [
      "build/**/*",
      "node_modules/**/*"
    ]
  },

我的问题是,当我运行我的“dist”脚本时,electron-builder 使用了我认为错误的 chrome 目标。这是输出:

• build native dependency from sources  name=@serialport/bindings
                                          version=9.0.0
                                          platform=win32
                                          arch=x64
                                          reason=prebuild-install failed with error (run with env DEBUG=electron-builder to get more information)
                                          error=prebuild-install info begin Prebuild-install version 5.3.4
    prebuild-install WARN install prebuilt binaries enforced with --force!
    prebuild-install WARN install prebuilt binaries may be out of date!
    prebuild-install info looking for cached prebuild @ C:\Users\Me\AppData\Roaming\npm-cache\_prebuilds\90024b-bindings-v9.0.0-electron-v80-win32-x64.tar.gz
    prebuild-install http request GET https://github.com/serialport/node-serialport/releases/download/@serialport/bindings@9.0.0/bindings-v9.0.0-electron-v80-win32-x64.tar.gz
    prebuild-install http 404 https://github.com/serialport/node-serialport/releases/download/@serialport/bindings@9.0.0/bindings-v9.0.0-electron-v80-win32-x64.tar.gz
    prebuild-install WARN install No prebuilt binaries found (target=9.0.5 runtime=electron arch=x64 libc= platform=win32)

我还没有尝试将预构建的二进制文件手动安装到该本地缓存位置。但是,我不知道 electron-builder 如何或为什么要寻找不存在的 v80 版本。电子版本 9.0.0 根据他们的版本使用 v83 作为目标,并且 serialport在这里也有一个 v83 版本。我在这里缺少的设置或版本配置有什么问题吗?电子制造商是如何做出这个决定的?

我尝试过的其他事情:

标签: electron-buildernode-serialport

解决方案


推荐阅读