1

我正在尝试用 electron-forge 打包一个电子应用程序(使用 wasm)。

目前(当我与打包斗争时!)它只不过是一个 hello-world,但它将一个简单的 rust lib 编译为 wasm,然后我将 .js 和 .wasm 文件复制到 ./src/ 并打包为一个电子应用程序.

使用“electron-forge start”运行它效果很好,但是当我用“electon-forge make”(在本例中为 Mac OS 上的 DMG)打包它然后安装并运行它时,它似乎正在尝试加载当我收到以下错误时,错误的 .wasm 文件(或已被修改...):

在此处输入图像描述

仅捆绑了一个 .wasm 文件,并且我检查了 .js 是否包含对正确文件的引用。

如果我进入 /Applications 中的 .app 包并导航到打包的源文件,那么一切都是正确的,并且与我的源文件夹相同。

检查 .wasm 文件的幻数似乎也很好..

hexdump ui-72b0082cbbe1a2b5.wasm |head -n 1 0000000 00 61 73 6d 01 00 00 00 01 86 01 13 60 02 7f 7f

所以,我不知道它试图将哪个文件加载为 .wasm 以及为什么幻数不正确。

有任何想法吗?

4

1 回答 1

1

不知道你是否还有这个问题,但这让我很困惑,所以我想我会把答案留给下一个人。简短的回答,您需要在 json 配置文件中添加一点。例子:

默认配置:

...
"config": {
   "forge": {
      "packagerConfig": { },
...

固定配置:

...
"config": {
   "forge": {
      "packagerConfig": { "asar.unpack" : "yourFileHere.js" },
...

尽我所能,问题出在电子打包程序以及它如何将所有内容压缩到该 asar 文件中。似乎尝试提供压缩文件,所以 MIME 类型错误。但是,即使我将 Web 程序集加载代码更改为使用 WebAssembly.instantiate 而不是 WebAssembly.instantiateStreaming(避免 MIME 检查),我仍然遇到了那些幻数问题……这就是压缩问题的线索。

你也可以做目录,这里有关于其他打包程序选项的信息 https://github.com/electron/electron-packager/blob/master/docs/api.md#asar

于 2019-11-23T00:42:15.483 回答