如何通过 Electron-builder 使用资产文件夹构建电子应用程序

How to build electron application with assets folder by Electron-builder

我用 electron-builder 构建了一个应用程序。开发区media文件夹里有个视频。但是当我构建应用程序时,我发现视频文件夹替换为 C://Programs 中资源文件夹中的 asar 文件。

我希望视频在 media 制作文件夹中。我该怎么做

您可能想在 package.json 文件中尝试使用 asar: false。但是,这不是推荐的方法。

您最好的办法是使用 extraResources 指令添加您想要保留在 asar 文件之外的资源:

"build": {
    "extraResources": [
        {
            "from": "../media",
            "to": "media",
            "filter": [
                "**/*",
                "!*.mp3",
            ]
        }
    ],

    "asar": false,


}

已接受的答案对我不起作用...有用的是指定我想要访问其内容的目录 post-build ,其格式与为 files 配置指定的格式相同。

electron-builder.json:

{
...
"extraResources": [
  "src/assets/my-assets/*"
],
...
}

构建完成后,您会在资源下找到与 asar 文件 (.../app/resources/src/assets/my-assets) 相同的文件夹。无需指定 asar: false.

在主进程中,如果使用__dirname,它将以app.asar结束。可以使用以下方式访问资产:

// Removing 8 characters to remove "app.asar"
let strippedPath = __dirname.substring(0, __dirname.length - 8);
let execPath = '\"' + strippedPath + 'src\assets\my-assets' + '\"';

现在 execPath 可以附加到资产文件夹中需要执行的任何内容。