如何在没有网络的情况下运行 electron-packager离线?

How to run electron-packager offline without internet?

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

我可以运行

electron . 

它工作正常。

但是现在我想制作一个exe。 为此,我想使用 electron-packager。

问题: 我运行:

electron-packager . --platform=win32

错误: getaddrinfo EAI_AGAIN github.com

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

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

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

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

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

npm install electron

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://我的镜像site/electron/" 请注意它以反斜杠结尾。

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

3.execute它:npm 运行 pac