安装Electron,支持编译软件(在调试)

This commit is contained in:
MoYi 2023-12-04 23:09:43 +08:00
parent a5bec61921
commit fcbb16a98c
4 changed files with 52 additions and 5 deletions

41
electron/main.ts Normal file
View File

@ -0,0 +1,41 @@
// main.ts
// 控制应用生命周期和创建原生浏览器窗口的模组
import path from "path";
import {app, BrowserWindow} from "electron";
function createWindow() {
// 创建浏览器窗口
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
// 引入预加载文件
preload: path.join(__dirname, "preload.js"),
},
});
// 加载vite启动的本地服务
mainWindow.loadURL("http://localhost:5173");
}
// 这段程序将会在 Electron 结束初始化
// 和创建浏览器窗口的时候调用
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(() => {
createWindow();
app.on("activate", function () {
// 通常在 macOS 上,当点击 dock 中的应用程序图标时,如果没有其他
// 打开的窗口,那么程序会重新创建一个窗口。
if (BrowserWindow.getAllWindows().length === 0) createWindow();
});
});
// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此,通常对程序和它们在
// 任务栏上的图标来说,应当保持活跃状态,直到用户使用 Cmd + Q 退出。
app.on("window-all-closed", function () {
if (process.platform !== "darwin") app.quit();
});

1
electron/preload.ts Normal file
View File

@ -0,0 +1 @@
console.log("preload");

View File

@ -3,10 +3,12 @@
"private": true,
"version": "0.0.0",
"type": "module",
"main": "dist/main.js",
"scripts": {
"dev": "vite",
"build": "vue-tsc && vite build",
"preview": "vite preview"
"build": "vue-tsc --noEmit && vite build",
"preview": "vite preview",
"electron:dev":"tsc && electron ."
},
"dependencies": {
"@types/crypto-js": "^4.2.1",
@ -24,6 +26,7 @@
"@typescript-eslint/parser": "^6.11.0",
"@vant/auto-import-resolver": "^1.0.2",
"@vitejs/plugin-vue": "^4.2.3",
"electron": "^27.1.3",
"eslint": "^8.54.0",
"eslint-plugin-vue": "^9.18.1",
"typescript": "^5.0.2",

View File

@ -10,9 +10,10 @@
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"isolatedModules": false,
"noEmit": false,
"jsx": "preserve",
"outDir": "dist",
/* Linting */
"strict": true,
@ -25,7 +26,8 @@
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue",
"auto-imports.d.ts"
"auto-imports.d.ts",
"electron/*.ts"
],
"references": [{ "path": "./tsconfig.node.json" }]
}