Electron & Electron Builder
This commit is contained in:
37
software/electron-builder.json
Normal file
37
software/electron-builder.json
Normal 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"
|
||||
]
|
||||
}
|
||||
46
software/electron/index.ts
Normal file
46
software/electron/index.ts
Normal 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)
|
||||
})
|
||||
});
|
||||
10
software/electron/preload.ts
Normal file
10
software/electron/preload.ts
Normal 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])
|
||||
}
|
||||
})
|
||||
9160
software/package-lock.json
generated
9160
software/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
})
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{
|
||||
"files": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.node.json"
|
||||
},
|
||||
{
|
||||
"path": "./tsconfig.web.json"
|
||||
},
|
||||
|
||||
10
software/tsconfig.node.json
Normal file
10
software/tsconfig.node.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"include": [
|
||||
"electron/*",
|
||||
],
|
||||
"compilerOptions": {
|
||||
"composite": true,
|
||||
"isolatedModules": false,
|
||||
"outDir": "build/src/electron"
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@
|
||||
"exclude": ["node_modules", "dist"],
|
||||
"include": [
|
||||
"backend/**/*.ts",
|
||||
"backend/**/*.json"
|
||||
"backend/**/*.json",
|
||||
"backend/images/**/**/*"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user