diff --git a/.env b/.env new file mode 100644 index 0000000000..d210cca62b --- /dev/null +++ b/.env @@ -0,0 +1 @@ +VITE_DEV_SERVER_URL=http://localhost:5173 diff --git a/launcher/package.json b/launcher/package.json index 037bcd8f74..ede51e4d36 100755 --- a/launcher/package.json +++ b/launcher/package.json @@ -12,9 +12,11 @@ "serve": "vue-cli-service serve --port 8081", "build": "vue-cli-service build", "lint": "vue-cli-service lint", + "dev": "vite", + "build:vite": "vite build", "build-themes": "node-sass src/styles/themes -o public/themes", "electron:build": "vue-cli-service electron:build", - "electron:serve": "vue-cli-service electron:serve", + "electron:serve": "wait-on http://localhost:5173 && electron src/background.js", "postinstall": "electron-builder install-app-deps", "postuninstall": "electron-builder install-app-deps", "test:unit": "jest '(\\.test|\\.spec)\\.js' --coverage", @@ -23,7 +25,7 @@ "test:coverage": "jest --coverage", "watch:css": "npx tailwindcss -i ./src/main.css -o ./public/output.css --watch", "lint:fix": "eslint src --fix", - "stereum": "concurrently \"npm:electron:serve\" \"npm:watch:css\"", + "stereum": "concurrently \"vite\" \"npm:electron:serve\"", "backend:watch": "nodemon --watch 'src/backend' --exec 'npm run electron:serve'", "format": "prettier . --write", "format:check": "prettier . --check" @@ -70,6 +72,7 @@ "@babel/preset-env": "^7.26.9", "@tailwindcss/forms": "^0.5.10", "@tailwindcss/typography": "^0.5.16", + "@vitejs/plugin-vue": "^5.2.3", "@vue/cli-service": "^5.0.8", "@vue/compiler-sfc": "^3.5.13", "@vue/test-utils": "^2.4.6", @@ -93,8 +96,10 @@ "prettier": "^3.5.3", "tailwind-scrollbar": "^3.1.0", "tailwindcss": "^3.4.17", + "vite": "^6.2.5", "vue-cli-plugin-electron-builder": "^3.0.0-alpha.4", "vue-loader": "^17.4.2", + "wait-on": "^8.0.3", "web3": "^4.16.0" }, "license": "https://wrapbootstrap.com/help/licenses", diff --git a/launcher/public/index.html b/launcher/public/index.html index ad3e9f0d02..3d151afffc 100755 --- a/launcher/public/index.html +++ b/launcher/public/index.html @@ -1,20 +1,17 @@ - + - - <%= htmlWebpackPlugin.options.title %> - + + Stereum Launcher +
- + diff --git a/launcher/src/background.js b/launcher/src/background.js index 3e7abc15fd..6b6baf0079 100755 --- a/launcher/src/background.js +++ b/launcher/src/background.js @@ -1,3 +1,4 @@ +#!/usr/bin/env node "use strict"; import { app, protocol, BrowserWindow, shell, dialog, ipcMain, Menu } from "electron"; @@ -909,11 +910,12 @@ async function createWindow(type = "main") { win.setMenuBarVisibility(false); // Load correct URL based on environment - if (process.env.WEBPACK_DEV_SERVER_URL) { - const url = type === "update" ? `${process.env.WEBPACK_DEV_SERVER_URL}#/update` : process.env.WEBPACK_DEV_SERVER_URL; + const devServerUrl = process.env.VITE_DEV_SERVER_URL || process.env.WEBPACK_DEV_SERVER_URL; - await win.loadURL(url); + if (devServerUrl) { + const url = type === "update" ? `${devServerUrl}#/update` : devServerUrl; + await win.loadURL(url); if (!process.env.IS_TEST) win.webContents.openDevTools(); } else { createProtocol("app"); diff --git a/launcher/src/components/UI/base-header/components/modals/LogoutModal.vue b/launcher/src/components/UI/base-header/components/modals/LogoutModal.vue index c698126d5f..6251585c6e 100755 --- a/launcher/src/components/UI/base-header/components/modals/LogoutModal.vue +++ b/launcher/src/components/UI/base-header/components/modals/LogoutModal.vue @@ -6,7 +6,7 @@ {{ $t("logOutModal.logOutTitle") }}
- + Stop {{ $t("logOutModal.logOutQuestion") }}
diff --git a/launcher/src/components/UI/edit-page/EditScreen.vue b/launcher/src/components/UI/edit-page/EditScreen.vue index c134ecf77e..6adecc4de3 100644 --- a/launcher/src/components/UI/edit-page/EditScreen.vue +++ b/launcher/src/components/UI/edit-page/EditScreen.vue @@ -152,7 +152,7 @@ import DrawerBox from "./components/drawer/DrawerBox.vue"; import DrawerMenu from "./components/drawer/DrawerMenu.vue"; import ServicesDrawer from "./components/drawer/ServicesDrawer.vue"; import SetupsDrawer from "./components/drawer/SetupsDrawer.vue"; -import EditBody from "./components/edit/EditBody"; +import EditBody from "./components/edit/EditBody.vue"; import LoaderAnime from "./components/loader-anime/LoaderAnime.vue"; import AddModal from "./components/modals/AddModal.vue"; import InfoModal from "./components/modals/InfoModal.vue"; diff --git a/launcher/src/components/UI/edit-page/components/modals/AddModal.vue b/launcher/src/components/UI/edit-page/components/modals/AddModal.vue index adaa97a45e..ca11f16fb8 100644 --- a/launcher/src/components/UI/edit-page/components/modals/AddModal.vue +++ b/launcher/src/components/UI/edit-page/components/modals/AddModal.vue @@ -18,8 +18,8 @@ + + diff --git a/launcher/src/pages/LoginPage.vue.vue b/launcher/src/pages/LoginPage.vue similarity index 100% rename from launcher/src/pages/LoginPage.vue.vue rename to launcher/src/pages/LoginPage.vue diff --git a/launcher/src/router/index.js b/launcher/src/router/index.js index 4617831334..ed9a817948 100755 --- a/launcher/src/router/index.js +++ b/launcher/src/router/index.js @@ -2,7 +2,7 @@ import { createRouter, createWebHashHistory } from "vue-router"; // import BaseHome from "../pages/BaseHome.vue"; import LanguagePage from "../pages/LanguagePage.vue"; -import LoginPage from "../pages/LoginPage.vue"; +import LoginPage from "@/pages/LoginPage.vue"; import OneclickPage from "@/pages/OneclickPage.vue"; import SelectPreset from "../../src/components/UI/one-click/sections/SelectPreset.vue"; import ConfigPlugins from "../../src/components/UI/one-click/sections/ConfigPlugins.vue"; diff --git a/launcher/tailwind.config.js b/launcher/tailwind.config.js index 61b0951bb0..8d56d041d7 100755 --- a/launcher/tailwind.config.js +++ b/launcher/tailwind.config.js @@ -1,5 +1,6 @@ module.exports = { - content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"], + content: ["./src/index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"], + theme: { extend: { backgroundImage: { diff --git a/launcher/vite.config.js b/launcher/vite.config.js new file mode 100644 index 0000000000..da041c1575 --- /dev/null +++ b/launcher/vite.config.js @@ -0,0 +1,23 @@ +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import path from "path"; + +export default defineConfig({ + root: "src", // your app's entry point + publicDir: path.resolve(__dirname, "public"), // ✅ Tell Vite where static files are + base: "./", + plugins: [vue()], + resolve: { + alias: { + "@": path.resolve(__dirname, "src"), + }, + }, + build: { + outDir: path.resolve(__dirname, "dist"), + emptyOutDir: true, + }, + server: { + port: 5173, + }, + assetsInclude: ["**/*.png", "**/*.jpg", "**/*.jpeg", "**/*.gif", "**/*.svg"], +});