【问题标题】:Electron packaging errors电子封装错误
【发布时间】:2018-04-26 22:52:16
【问题描述】:

我是 Electron 的新手,我很喜欢它。刚刚为娱乐行业编写了一个很棒的小应用程序,但在打包它时遇到了麻烦。还要注意有一个电子编译器和一个打包器。您使用哪一个对 Windows 最终用户最方便?我在娱乐业的某个领域与大多数 Windows 人一起工作,所以作为一个 Linux 用户,如果某些东西不起作用,你会得到大量的批评。问题来了:

package.json:

{
  "name": "Sick Bay Scanner by H.A. Hobson",
  "productName": "SickBayScanner",
  "version": "1.0.1",
  "main": "main.js",
  "devDependencies": {
    "electron-winstaller": "^2.6.3"
  }

}

包装参数和结果:

me@debian:/$ electron-packager --electron-version=1.7.9 . sound/SickBayScanner --overwrite --asar=true --platform=win32 --arch=x64 --icon=assets/icons/png/1024x1024.png --prune=true --out=release-builds
WARNING: --asar does not take any arguments, it only has sub-properties (see --help)
Downloading tmp-6742-0-electron-v1.7.9-win32-x64.zip
[============================================>] 100.0% of 53.89 MB (421.05 kB/s)
Packaging app for platform win32 x64 using electron v1.7.9
EPERM: operation not permitted, open '/dev/core'

如果您能解释如何创建对最终用户来说尽可能容易使用的电子应用程序,无论是打包还是编译,并指出我自己的打包问题,将非常感激。谢谢!

【问题讨论】:

    标签: javascript json npm electron


    【解决方案1】:

    首先,我在 linux 上打包 windows 遇到了很多麻烦,所以最后我只是使用 virtual box 制作了一个虚拟 windows 机器并在那里完成了。唯一的问题是获得正确的iso很棘手:(

    其次,我不认为使用 asar 有太多优势,因为没有多少人想查看您的源代码,而大多数人确实知道如何解压 asar 并获取您的源代码。

    https://stackoverflow.com/a/38524534/6577664

    总而言之,我认为您最好的选择就是在 Windows PC 上进行。

    【讨论】:

    • 谢谢迈克。 10 多年来,Windows 一直是免费的。只是希望保持这样。我会在某个时候尝试为微软客户寻找一台备用机器。
    • harry@debian:/usr/lib/node_modules$ electron-packager --electron-version=1.7.9 。 /home/harry/sound/SickBayScanner --overwrite --platform=linux --arch=x64 --DEBUG=* --icon=assets/icons/png/1024x1024.png --prune=true --out=release-使用电子 v1.7.9 为平台 linux x64 构建打包应用程序 为 release-builds/-home-harry-sound-SickBayScanner-linux-x64 编写了新应用程序 这是一个成功的 Linux 构建的样子吗?即使我与 Windows 人员打交道,只要他们不必为它提供服务,他们就不会对使用 Raspberry Pi 进行生产感到不安。
    • 是的,这就是成功的 linux 构建的样子
    【解决方案2】:

    这是否包含在您的 package.json 中?你还有其他依赖吗?

    如果您这样做,请编辑您的问题,这是我过去看到此错误的原因之一。

    确保你安装了 electron-builder 并向你的 package.json 添加类似的东西:

    "postinstall": "npm install --save electron-builder && npm install --save [任何其他你没有提到的依赖项] && install-app-deps"

    这将确保您为打算使用该应用程序的系统正确安装这些依赖项。

    我推荐使用 electron-packager,因为它会自动为您检测系统。

    编辑:

    好的,您不需要 install-app-deps,因为您没有任何需要从源到目标 windows env 构建的主要依赖项,正如您在下面的评论中提到的那样。所以你只需要安装wine。问题是,我认为没有一种解决方法可以在您将用于打包应用程序的机器上全局安装它。这是我找到的最接近的解决方案:https://github.com/rahatarmanahmed/electron-packager-dummy-wine我还没有测试过,请注意自述文件中提到的警告:("

    【讨论】:

    • 感谢您的评论。我唯一拥有的是一个用 JavaScript 调用的小 .wav 文件,否则它只是一些用 HTML 调用的 .png 文件。我会尝试添加你上面写的。
    • 我使用纱线添加了电子包装器,它可以毫不费力地加载。然后我得到了这个: harry@debian:/usr/lib/node_modules$ electron-packager --electron-version=1.7.9 。 /home/harry/sound/SickBayScanner --overwrite --platform=win32 --arch=x64 --DEBUG=* --icon=assets/icons/png/1024x1024.png --prune=true --out=release-构建
    • 使用 electron v1.7.9 为平台 win32 x64 打包应用程序无法在您的系统上找到“wine”。 Wine 需要为 Windows 目标使用 appCopyright、appVersion、buildVersion、icon 和 win32metadata 参数。确保“wine”可执行文件在您的 PATH 中。详情请见github.com/electron-userland/…
    • 您提供的脚本如下: { "name": "Sick Bay Scanner by HA Hobson", "productName": "SickBayScanner", "version": "1.0.1", "main" : "main.js", "postinstall": "npm install --save electron-builder && npm install --save [任何其他你没有提到的依赖项] && install-app-deps" "devDependencies": { "electron -winstaller": "^2.6.3" } "scripts": { "pack": "electron-builder --dir", "dist": "electron-builder" } }
    • 你需要Wine来做包装吗?这似乎有点合乎逻辑。关于如何在参数中包含 wine 的任何指针?
    猜你喜欢
    • 2018-05-15
    • 1970-01-01
    • 2017-10-28
    • 2016-09-24
    • 2015-08-30
    • 2019-12-03
    • 1970-01-01
    • 2016-02-06
    • 2016-08-03
    相关资源
    最近更新 更多