如何通过 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
可以附加到资产文件夹中需要执行的任何内容。
我用 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
可以附加到资产文件夹中需要执行的任何内容。