1、 创建一个名称为electron-vite的vite项目,模板为vue-ts
yarn create vite electron-vite –template vue-ts
2、安装项目依赖
yarn install
3、vite启动测试
npm run dev
5、安装electron concurrently cross-env electron-builder包。
yarn add electron concurrently cross-env electron-builder –D
6、构建electron
创建electron文件夹,在文件夹下创建main.js,preload.js
main.js
// 引入app 浏览器主窗体
const { app, BrowserWindow } = require('electron')
// 引入路径
const path = require('path')
// 环境变量,用于判断当前工程处于开发、生产环境
const NODE_ENV = process.env.NODE_ENV;
// 定义一个窗体函数
function createWindow () {
// 定义窗体对象
const win = new BrowserWindow({
// 定义窗体的宽
width: 800,
// 定义窗体的高
height: 600,
webPreferences: {
// 定义预加载文件
preload: path.join(__dirname, 'preload.js')
}
})
// 定义载入的主页面
// win.loadFile('index.html')
win.loadURL(
// 当环境为开发环境时,访问http://localhost:5173 页面进行显示,否则显示上级目录的dist目录下的index.html文件。
NODE_ENV ==="development" ? "http://localhost:5173" : `file://${path.join(__dirname,"../dist/index.html")}`
);
}
// 当应用准备完毕后,执行事项
app.whenReady().then(() => {
// 创建窗口
createWindow()
// 事件监听为激活时,执行事项
app.on('activate', () => {
// 窗口未显示时,创建窗口
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
})
// 事件监听为关闭窗口时,退出所有窗口
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
preload.js
window.addEventListener('DOMContentLoaded', () => {
const replaceText = (selector, text) => {
const element = document.getElementById(selector)
if (element) element.innerText = text
}
for (const type of ['chrome', 'node', 'electron']) {
replaceText(`${type}-version`, process.versions[type])
}
})
7、构建package.json。
安装wait-on:
yarn add wait-on
使用wait-on等待vite启动后,再启动electron。
安装 cross-env
yarn add cross-env
通过cross-env设置环境变量
配置package.json文件如下:
"electron": "wait-on tcp:5173 && cross-env NODE_ENV=development electron ."
8、测试启动electron。
需要再次安装electron
yarn add electron
启用项目
yarn run electron
2022-8-31 16:50:06
评论区