首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >electron-builder在macos上构建linux包失败-错误:未知目标:构建

electron-builder在macos上构建linux包失败-错误:未知目标:构建
EN

Stack Overflow用户
提问于 2020-11-20 15:34:00
回答 1查看 431关注 0票数 0

我正在使用electron-builder打包我的应用程序。我有一个存放所有资源的dist/文件夹。根文件夹中的main.js不需要任何转换,并且包含主进程代码。当使用electron命令启动时,这在开发模式下工作得很好。

我使用package.json configuration设置了electron-builder

代码语言:javascript
复制
  [...]
  "main": "./main.js",
  "build": {
    "appId": "com.electron.mycompany.myapp",
    "productName": "myapp",
    "linux": {
      "target": "deb"
    },
    "files": [
      "./dist",
      "./main.js"
    ]
  },
  [...]

我像这样启动electron-builderelectron-builder -ml build。Macos构建包很好,我可以启动应用程序了。然而,Linux构建失败了。我正在macos Catalina上构建Linux包。它为我提供了错误堆栈跟踪:

代码语言:javascript
复制
rebuilding native dependencies  dependencies=leveldown@5.6.0 platform=linux arch=x64
  ⨯ Unknown target: build  stackTrace=
                             Error: Unknown target: build
                                 at createCommonTarget (/Users/username/Projects/myappnode_modules/app-builder-lib/src/targets/targetFactory.ts:90:11)
                                 at /Users/username/Projects/myapp/node_modules/app-builder-lib/src/linuxPackager.ts:65:18
                                 at mapper (/Users/username/Projects/myapp/node_modules/app-builder-lib/src/targets/targetFactory.ts:57:16)
                                 at LinuxPackager.createTargets (/Users/username/Projects/myapp/node_modules/app-builder-lib/src/linuxPackager.ts:63:7)
                                 at createTargets (/Users/username/Projects/myapp/node_modules/app-builder-lib/src/targets/targetFactory.ts:64:12)
                                 at Packager.doBuild (/Users/username/Projects/myapp/node_modules/app-builder-lib/src/packager.ts:442:28)
                                 at processTicksAndRejections (internal/process/task_queues.js:85:5)
                                 at executeFinally (/Users/username/Projects/myapp/node_modules/builder-util/src/promise.ts:12:14)
                                 at Packager._build (/Users/username/Projects/myapp/node_modules/app-builder-lib/src/packager.ts:373:31)
                                 at Packager.build (/Users/username/Projects/myapp/node_modules/app-builder-lib/src/packager.ts:337:12)
                                 at executeFinally (/Users/username/Projects/myapp/node_modules/builder-util/src/promise.ts:12:14)
  • building embedded block map  file=dist/IJP Visualization Tool-1.0.0-alpha.1-mac.zip

我没有使用任何代码签名(我也不希望如此)。有什么配置错误吗?它似乎是它,但不确定问题到底是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-20 20:51:59

根据electron-builder CLI documentation,所有平台交换机都接受“目标列表”,这实际上是您在package.json中使用不同的平台条目(build.<platform>.target,例如build.linux.target)配置的列表。

但是,通过使用这些目标列表,您可以指定要构建的目标并排除所有其他目标。由于Linux的开关是开关列表-ml中的最后一个开关,Electron Builder将其解释为您想要传递给它一个目标列表。这不适用于macOS构建步骤,因为这样您就必须使用-m <targets> -l <targets>-ml <targets>显然只适用于Linux。

因此,通过将Linux附加到命令行,您可以告诉Electron Builder为macOS编译所有已配置的目标,但只构建名为buildbuild目标。由于没有这样的目标,Electron Builder崩溃了。从您的命令中删除build将会起到作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64925472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档