🎭 Adds environment variables for modes

This commit is contained in:
Rune Harlyk
2024-02-25 01:51:55 +01:00
committed by Rune Harlyk
parent 0f676e3543
commit 3e7918208a
10 changed files with 43 additions and 14 deletions
View File
+3
View File
@@ -0,0 +1,3 @@
VITE_API_URL="leika.local"
VITE_SOCKET_URL="leika.local"
VITE_EMBEDDED_BUILD=true
+3
View File
@@ -0,0 +1,3 @@
VITE_API_URL="hostname"
VITE_SOCKET_URL="hostname:2096"
VITE_EMBEDDED_BUILD=true
+3
View File
@@ -0,0 +1,3 @@
VITE_API_URL="hostname"
VITE_SOCKET_URL="hostname:2096"
VITE_EMBEDDED_BUILD=false
+3
View File
@@ -0,0 +1,3 @@
VITE_API_URL="leika.local"
VITE_SOCKET_URL="leika.local"
VITE_EMBEDDED_BUILD=false
+8 -5
View File
@@ -4,10 +4,12 @@
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"dev:mock": "vite --mode MOCK",
"build": "cross-env FOR_EMBEDDED=true vite build",
"build:web": "cross-env FOR_EMBEDDED=false vite build --mode WEB",
"dev": "vite --mode embedded",
"dev:mock_embedded": "vite --mode mock_embedded",
"dev:mock_web": "vite --mode mock_web",
"build": "vite build --mode embedded",
"build:mock_web": "vite build --mode mock_web",
"build:web": "vite build --mode web",
"preview": "vite preview",
"test": "vitest",
"check": "svelte-check --tsconfig ./tsconfig.json",
@@ -21,6 +23,7 @@
"@typescript-eslint/parser": "^6.20.0",
"autoprefixer": "^10.4.17",
"cross-env": "^7.0.3",
"dotenv": "^16.4.5",
"husky": "^9.0.7",
"lint-staged": "^15.2.0",
"postcss": "^8.4.33",
@@ -49,4 +52,4 @@
"*.js": "eslint --cache --fix",
"*.{js,css,md,ts,svelte}": "prettier --write"
}
}
}
+8
View File
@@ -49,6 +49,9 @@ devDependencies:
cross-env:
specifier: ^7.0.3
version: 7.0.3
dotenv:
specifier: ^16.4.5
version: 16.4.5
husky:
specifier: ^9.0.7
version: 9.0.7
@@ -1168,6 +1171,11 @@ packages:
esutils: 2.0.3
dev: true
/dotenv@16.4.5:
resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
engines: {node: '>=12'}
dev: true
/electron-to-chromium@1.4.649:
resolution: {integrity: sha512-dq/owIaALxZGqWm5RXpKQ4baX6aDC19e2Z16c8SXYN+I71PyEKjbVqQUgm7kcuk8CRqljTKXbolo0XXDjxnh2w==}
dev: true
+9 -6
View File
@@ -1,8 +1,11 @@
const forWeb = import.meta.env.MODE === 'WEB';
const mock = import.meta.env.MODE === 'MOCK';
export const webAppBuild = import.meta.env.MODE === 'WEB';
export const hostname = window.location.hostname;
export const location = mock ? `${window.location.hostname}:2096` : 'leika.local';
export const isSecure = window.location.protocol === 'https:';
export const socketLocation = forWeb
? `wss://${window.location.hostname}:2096`
: `ws://${location}`;
export const location = import.meta.env.VITE_API_URL.replace('hostname', hostname);
const socketScheme = isSecure ? 'wss://' : 'ws://';
export const socketLocation =
socketScheme + import.meta.env.VITE_SOCKET_URL.replace('hostname', hostname);
@@ -1,5 +1,7 @@
import { writable } from 'svelte/store';
export const isEmbeddedApp = import.meta.env.VITE_EMBEDDED_BUILD === 'true';
export const persistentStore = (key: string, initialValue: any) => {
const savedValue = JSON.parse(localStorage.getItem(key) as string);
const data = savedValue !== null ? savedValue : initialValue;
+4 -3
View File
@@ -3,17 +3,18 @@ import { svelte } from '@sveltejs/vite-plugin-svelte';
import { viteSingleFile } from 'vite-plugin-singlefile';
import viteCompression from 'vite-plugin-compression';
import path from 'path';
import 'dotenv/config';
const forEmbedded = process.env.FOR_EMBEDDED == 'true';
const embeddedBuild = process.env.VITE_EMBEDDED_BUILD == 'true';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
svelte(),
...(forEmbedded ? [viteSingleFile(), viteCompression({ deleteOriginFile: true })] : [])
...(embeddedBuild ? [viteSingleFile(), viteCompression({ deleteOriginFile: true })] : [])
],
build: {
outDir: forEmbedded ? '../data' : './build',
outDir: embeddedBuild ? '../data' : './build',
emptyOutDir: true
},
resolve: {