【问题标题】:How to run electron-packager offline without internet?如何在没有互联网的情况下离线运行电子包装器?
【发布时间】:2021-09-28 16:00:48
【问题描述】:

我有一个 Angular 项目。我想将他转换为桌面应用程序。为此,我使用 Electron.js。

我可以跑

electron . 

效果很好。

但现在我想制作一个 exe。 为此,我想使用电子打包器。

问题: 我跑:

electron-packager . --platform=win32

错误: getaddrinfo EAI_AGAIN github.com

我知道electron-packager需要github,但是怎么解决呢?!我再次在没有互联网的情况下离线工作(使用 jfrog artifactory)。

有没有其他电子包可以在没有互联网的情况下做同样的事情? (制作一个exe)

【问题讨论】:

  • 虽然我目前无法通过 CLI 检查是否可行,但您可以尝试调整一些选项。在 JavaScript API 中,electronZipDir 允许您指定将 Electron ZIP 文件下载到的目录。但是,这意味着您需要某种互联网连接。 AFAIK,完全脱机是行不通的,因为 NPM 模块 electron 没有提供所需可执行文件的正确版本。
  • 感谢@Alexander Leithner!它有效!

标签: electron electron-packager


【解决方案1】:

问题是electron-packager去github.com下载electron.js。

正如@Alexander Leithner 所说,要使用 electronZipDir 选项。 (以及 Discord 中电子通道中的 malpt)

解决方法很简单,当你执行时:

npm install electron

电子二进制文件的 zip 文件缓存在您的计算机中。

electron-packager 的命令如下:

npm install  -D electron-packager
npx electron-packager  .  -- platform=win32 --electronZipDir=C:/Users/baruc/AppData/Local/electron/Cache/**some long string**

就是这样

编辑 25/7/2021 从理论上讲,electron-packager 有一个名为“download”的选项,您可以向他传递“cacheRoot”或“mirrorOptions”来下载 electron.zip 文件。 默认情况下,您不需要更改 cacheRoot,但不幸的是,下载的两个选项都不适合我。

顺便说一句,mirrorOptions 得到了一个对象,而不是一个字符串。所以不清楚如何从命令行传递一个对象。

我在 @electron/get 库的文件 artifact-utils.js 中看到了,在名为“mirrorVar”的函数中,它搜索了一个特殊的环境变量或我之前告诉过的 mirrorOptions。如果此函数找不到它们,它将采用默认值 github。

当你有一个工件时的解决方案:

  1. 在您的项目中创建一个 .npmrc 文件并在其中写入: ELECTRON_MIRROR="http://我的镜像站点/electron/" 请注意,它以反斜杠结尾。

  2. 转到 package.json 文件,然后在脚本中写入: "pac": "electron-packager -- . --platform=win32"

3.执行它:npm run pac

【讨论】:

    猜你喜欢
    • 2022-10-07
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2013-10-16
    • 1970-01-01
    • 2016-04-18
    相关资源
    最近更新 更多