Electron & Electron Builder

This commit is contained in:
2024-11-02 18:09:44 +01:00
parent 201714403c
commit aeb28fe5a7
9 changed files with 8007 additions and 1307 deletions

View File

@@ -0,0 +1,37 @@
{
"asar": true,
"appId": "de.luh.app",
"directories": {
"output": "out"
},
"nsis": {
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"shortcutName": "Electron App"
},
"mac": {
"target": "dmg"
},
"win": {
"target": "nsis"
},
"linux": {
"target": ["deb"],
"maintainer": "Tobias Zoghaib"
},
"files": [
{
"from": "build",
"to": "build",
"filter": ["**/*"]
},
"!backend",
"!electron",
"!release",
"!src",
"!dist",
"!out"
]
}

View File

@@ -0,0 +1,46 @@
const { app, BrowserWindow } = require("electron");
const path = require("path");
const backend = require('./../backend/server')
/**
* Create the application window
*/
function createWindow() {
const win = new BrowserWindow({
width: 1400,
height: 800,
webPreferences: {
preload: path.join(__dirname, "preload.js"),
},
});
// Load HTML entry point
win.loadFile("build/src/vite/index.html");
// Maximize window
win.maximize()
// Remove menu bar
win.removeMenu()
}
app.whenReady().then(() => {
createWindow();
app.on("activate", () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow();
}
});
});
app.on("window-all-closed", () => {
if (process.platform !== "darwin") {
app.quit();
}
// Close the expressjs backend server on application termination
backend.close(() => {
process.exit(0)
})
});

View File

@@ -0,0 +1,10 @@
window.addEventListener('DOMContentLoaded', () => {
const replaceText = (selector: any, text: any) => {
const element = document.getElementById(selector)
if (element) element.innerText = text
}
for (const dependency of ['chrome', 'node', 'electron']) {
replaceText(`${dependency}-version`, process.versions[dependency])
}
})

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +1,29 @@
{
"name": "hackmycart",
"version": "0.0.0",
"name": "eventmaster",
"version": "0.1.0",
"author": "Tobias Zoghaib",
"description": "Hackable ticket store for educational purposes",
"license": "MIT",
"homepage": "www.uni-hannover.de",
"main": "build/src/electron/index.js",
"private": true,
"scripts": {
"vite:dev": "vite",
"vite:build": "vite build",
"vite:preview": "vite preview",
"server:build": "tsc -p tsconfig.server.json --composite false",
"server:clean": "rimraf build/",
"server:copy-files": "copyfiles -u l backend/images/**/*.* build/src/",
"server:build": "tsc -p tsconfig.server.json --composite false && npm run server:copy-files",
"server:dev": "nodemon",
"fullstack:dev": "concurrently \"nodemon\" \"wait-on http://localhost:3000/api/ && vite\"",
"fullstack:build": "npm run vite:build && npm run server:build"
"fullstack:build": "npm run vite:build && npm run server:build",
"ts": "tsc -p tsconfig.node.json --composite false && npm run fullstack:build",
"electron:dev": "npm run ts && electron .",
"electron:build": "npm run vite:build && npm run ts",
"electron:preview": "npm run vite:build && npm run ts && electron .",
"builder:build": "electron-builder",
"builder:mac": "electron-builder --mac",
"builder:win": "electron-builder -w"
},
"nodemonConfig": {
"watch": [
@@ -23,11 +37,10 @@
"@vueuse/core": "^11.1.0",
"axios": "^1.7.7",
"body-parser": "^1.20.2",
"concurrently": "^9.0.1",
"cors": "^2.8.5",
"electron-squirrel-startup": "^1.0.1",
"express": "^4.21.1",
"moment": "^2.30.1",
"momentjs": "^2.0.0",
"pinia": "^2.2.4",
"reflect-metadata": "^0.2.2",
"sequelize": "^6.37.4",
@@ -41,13 +54,19 @@
"wait-on": "^8.0.1"
},
"devDependencies": {
"@electron-toolkit/tsconfig": "^1.0.1",
"@electron/fuses": "^1.8.0",
"@types/cors": "^2.8.17",
"@types/express": "^4.17.21",
"@types/node": "^22.7.6",
"@vitejs/plugin-vue": "^5.1.4",
"concurrently": "^9.0.1",
"copyfiles": "^2.4.1",
"electron": "^33.0.2",
"electron-builder": "^25.1.8",
"nodemon": "^3.1.7",
"rimraf": "^6.0.1",
"vite": "^5.4.9",
"vue-svg-loader": "^0.16.0",
"vue-template-compiler": "^2.7.16"
"vue-tsc": "^2.1.10"
}
}

View File

@@ -1,9 +1,9 @@
import { createRouter, createWebHistory } from 'vue-router'
import { createRouter, createWebHashHistory } from 'vue-router'
import routes from './../router/routes'
// Router configuration
const router = createRouter({
history: createWebHistory(),
history: createWebHashHistory(),
routes
})

View File

@@ -1,6 +1,9 @@
{
"files": [],
"references": [
{
"path": "./tsconfig.node.json"
},
{
"path": "./tsconfig.web.json"
},

View File

@@ -0,0 +1,10 @@
{
"include": [
"electron/*",
],
"compilerOptions": {
"composite": true,
"isolatedModules": false,
"outDir": "build/src/electron"
}
}

View File

@@ -14,6 +14,7 @@
"exclude": ["node_modules", "dist"],
"include": [
"backend/**/*.ts",
"backend/**/*.json"
"backend/**/*.json",
"backend/images/**/**/*"
]
}