前言
electron是将静态资源打包到asar文件中,我们打包的时候是将项目所有的文件进行打包的,所以我们访问的主页面其实就相当于是我们以往打包后dist文件中的资源。
一、安装electron-builder
介绍:electron-builder简单来说就是将我们的项目打包成一个静态的资源,我们可以进行安装使用的一个打包工具。
npm install electron-builder -D
安装成功之后我们的package.json文件中会出现安装好的工具。
二、打包
1. 进行打包
在package.json中添加:
"scripts": {
"dev": "vite",
"build": "vite build",
"electron:serve": "vite build & electron . ",
"electron:build": "electron-builder",
"preview": "vite preview"
},
输入命令进行打包:
npm run electron:build
打包成功后会出现以下的目录结构: 然后点开win-packed文件里面的exe文件: 打开文件,我们发现页面空白,并且报了以下错误: 该错误说明是资源文件没有加载出来,然后我们打开刚刚打包后的index文件,我们发现,这里的资源路径是被打包成了绝对路径: 找到vite.config.js进行修改文件加载路径:
export default defineConfig({
plugins: [vue()],
base: './',
server: {
port: 8888,
cors: true,
hmr: true,
},
})
找到main.js里面我们发现,我们的入口文件dist下面的index.html:
mainWindow.loadFile(path.resolve(__dirname, './dist/index.html'))
因为入口文件是在asar/dist/index.htlm进行加载的,我们并没有将dist文件单独打包进asar资源文件中,所以我们的应用页面加载错误,所以我们应该先对项目进行普通打包然后再打包成我们想要的exe文件,在package.json中进行修改:
"electron:build": "vite build & electron-builder build --config electron-builder.json",
build --config是electron打包的相关配置,所以我们需要创建一个文件electron-builder.json输入以下配置:
{
"productName": "test",
"files": ["./main.js", "./dist"]
}
最后再输入npm run electron:build进行打包就可以成功显示了:
2、electron打包的相关配置
在electron-builder.json输入以下代码进行配置:
{
appId: "lethe.com",
productName: "my-project",
copyright: "lethe Copyright ? 2022",
files: ["./main.js", "./dist"]
extraFiles: [
"./server",
],
directories: {
output: "dists",
},
win: {
requestedExecutionLevel: "requireAdministrator",
target: ["nsis", "zip"],
},
nsis: {
oneClick: false,
allowElevation: true,
allowToChangeInstallationDirectory: true,
createDesktopShortcut: true,
createStartMenuShortcut: true,
shortcutName: "leDom",
},
}
然后重新进行打包,这就是我们打包好的文件:
三、项目调试
项目调试只需要将主进程渲染入口修改本地的访问路径即可:
mainWindow.loadURL("http://localhost:8888/");
|