【发布时间】:2019-10-05 12:02:16
【问题描述】:
我已经用电子生成器构建了一个应用程序。开发区media文件夹中有一个视频。但是当我构建应用程序时,我发现视频文件夹替换为 C://Programs 中资源文件夹中的 asar 文件。
我希望视频在生产中包含在 media 文件夹中。我该怎么做呢
【问题讨论】:
-
不要在你的构建脚本中指定
--asar
我已经用电子生成器构建了一个应用程序。开发区media文件夹中有一个视频。但是当我构建应用程序时,我发现视频文件夹替换为 C://Programs 中资源文件夹中的 asar 文件。
我希望视频在生产中包含在 media 文件夹中。我该怎么做呢
【问题讨论】:
--asar
您可能想在package.json 文件中尝试使用asar: false。但是,这不是推荐的方法。
您可以做的最好的事情是使用extraResources 指令将要保留的资源添加到 asar 文件之外:
"build": {
"extraResources": [
{
"from": "../media",
"to": "media",
"filter": [
"**/*",
"!*.mp3",
]
}
],
"asar": false,
}
【讨论】:
接受的答案对我不起作用...起作用的是指定目录,我希望以与 files 配置指定的格式相同的格式在构建后访问其内容。
电子生成器.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 可以附加到资产文件夹中需要执行的任何内容。
【讨论】: