要将自定义文件夹打包进app.asar,需要进行如下步骤:
win-unpacked/resources/app
文件夹下使用electron-builder
,在build配置下增加以下配置
json "extraResources": [
{
"from": "resources/dist/",
"to": "app/dist/"
},
{
"from": "resources/config/",
"to": "app/config/"
},
{
"from": "resources/sql/",
"to": "app/sql/"
},
{
"from": "resources/cashbook-server.exe",
"to": "app/cashbook-server.exe"
}
]
以第一个配置为例说明:
resources/dist/
:指定当前目录下的resources/dist/
文件夹app/dist/
:打包时,将指定的文件夹内容拷贝到resouorces/app/dist
文件夹在应用程序的根目录下创建一个名为resources的文件夹。
将要打包进app.asar的自定义文件夹(例如myFolder)复制到resources文件夹中。
在应用程序的主进程代码中,使用以下代码获取resources文件夹的绝对路径:
jsconst path = require('path');
const resourcesPath = path.join(__dirname, 'resources');
jsconst { BrowserWindow } = require('electron');
const path = require('path');
const resourcesPath = path.join(__dirname, 'resources');
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(resourcesPath, 'preload.js')
}
});
这样可以确保在渲染进程中可以使用require来获取myFolder文件夹中的文件。
jsconst path = require('path');
const { remote } = require('electron');
const resourcesPath = remote.app.getPath('userData');
const myFolderPath = path.join(resourcesPath, 'myFolder');
这样可以确保在渲染进程中可以使用node.js的fs模块访问myFolder文件夹中的文件。
js"build": {
"asarUnpack": [
"resources/myFolder"
]
}
这样可以确保在打包应用程序时,myFolder文件夹不会被打包进app.asar,而是作为一个独立的文件夹存在。
如果你觉得本文对你有用,想要给作者一些赞助,可以动动小手点击下方广告给予支持,万分感谢~
您的每次点击都能给予作者更多分享的动力!请无情点击吧:
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!