🎭 Adds environment variables for modes
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
VITE_API_URL="leika.local"
|
||||||
|
VITE_SOCKET_URL="leika.local"
|
||||||
|
VITE_EMBEDDED_BUILD=true
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
VITE_API_URL="hostname"
|
||||||
|
VITE_SOCKET_URL="hostname:2096"
|
||||||
|
VITE_EMBEDDED_BUILD=true
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
VITE_API_URL="hostname"
|
||||||
|
VITE_SOCKET_URL="hostname:2096"
|
||||||
|
VITE_EMBEDDED_BUILD=false
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
VITE_API_URL="leika.local"
|
||||||
|
VITE_SOCKET_URL="leika.local"
|
||||||
|
VITE_EMBEDDED_BUILD=false
|
||||||
+7
-4
@@ -4,10 +4,12 @@
|
|||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite --mode embedded",
|
||||||
"dev:mock": "vite --mode MOCK",
|
"dev:mock_embedded": "vite --mode mock_embedded",
|
||||||
"build": "cross-env FOR_EMBEDDED=true vite build",
|
"dev:mock_web": "vite --mode mock_web",
|
||||||
"build:web": "cross-env FOR_EMBEDDED=false vite build --mode WEB",
|
"build": "vite build --mode embedded",
|
||||||
|
"build:mock_web": "vite build --mode mock_web",
|
||||||
|
"build:web": "vite build --mode web",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"test": "vitest",
|
"test": "vitest",
|
||||||
"check": "svelte-check --tsconfig ./tsconfig.json",
|
"check": "svelte-check --tsconfig ./tsconfig.json",
|
||||||
@@ -21,6 +23,7 @@
|
|||||||
"@typescript-eslint/parser": "^6.20.0",
|
"@typescript-eslint/parser": "^6.20.0",
|
||||||
"autoprefixer": "^10.4.17",
|
"autoprefixer": "^10.4.17",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
|
"dotenv": "^16.4.5",
|
||||||
"husky": "^9.0.7",
|
"husky": "^9.0.7",
|
||||||
"lint-staged": "^15.2.0",
|
"lint-staged": "^15.2.0",
|
||||||
"postcss": "^8.4.33",
|
"postcss": "^8.4.33",
|
||||||
|
|||||||
Generated
+8
@@ -49,6 +49,9 @@ devDependencies:
|
|||||||
cross-env:
|
cross-env:
|
||||||
specifier: ^7.0.3
|
specifier: ^7.0.3
|
||||||
version: 7.0.3
|
version: 7.0.3
|
||||||
|
dotenv:
|
||||||
|
specifier: ^16.4.5
|
||||||
|
version: 16.4.5
|
||||||
husky:
|
husky:
|
||||||
specifier: ^9.0.7
|
specifier: ^9.0.7
|
||||||
version: 9.0.7
|
version: 9.0.7
|
||||||
@@ -1168,6 +1171,11 @@ packages:
|
|||||||
esutils: 2.0.3
|
esutils: 2.0.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/dotenv@16.4.5:
|
||||||
|
resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/electron-to-chromium@1.4.649:
|
/electron-to-chromium@1.4.649:
|
||||||
resolution: {integrity: sha512-dq/owIaALxZGqWm5RXpKQ4baX6aDC19e2Z16c8SXYN+I71PyEKjbVqQUgm7kcuk8CRqljTKXbolo0XXDjxnh2w==}
|
resolution: {integrity: sha512-dq/owIaALxZGqWm5RXpKQ4baX6aDC19e2Z16c8SXYN+I71PyEKjbVqQUgm7kcuk8CRqljTKXbolo0XXDjxnh2w==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
const forWeb = import.meta.env.MODE === 'WEB';
|
export const webAppBuild = import.meta.env.MODE === 'WEB';
|
||||||
const mock = import.meta.env.MODE === 'MOCK';
|
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
|
export const location = import.meta.env.VITE_API_URL.replace('hostname', hostname);
|
||||||
? `wss://${window.location.hostname}:2096`
|
|
||||||
: `ws://${location}`;
|
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';
|
import { writable } from 'svelte/store';
|
||||||
|
|
||||||
|
export const isEmbeddedApp = import.meta.env.VITE_EMBEDDED_BUILD === 'true';
|
||||||
|
|
||||||
export const persistentStore = (key: string, initialValue: any) => {
|
export const persistentStore = (key: string, initialValue: any) => {
|
||||||
const savedValue = JSON.parse(localStorage.getItem(key) as string);
|
const savedValue = JSON.parse(localStorage.getItem(key) as string);
|
||||||
const data = savedValue !== null ? savedValue : initialValue;
|
const data = savedValue !== null ? savedValue : initialValue;
|
||||||
|
|||||||
+4
-3
@@ -3,17 +3,18 @@ import { svelte } from '@sveltejs/vite-plugin-svelte';
|
|||||||
import { viteSingleFile } from 'vite-plugin-singlefile';
|
import { viteSingleFile } from 'vite-plugin-singlefile';
|
||||||
import viteCompression from 'vite-plugin-compression';
|
import viteCompression from 'vite-plugin-compression';
|
||||||
import path from 'path';
|
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/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [
|
plugins: [
|
||||||
svelte(),
|
svelte(),
|
||||||
...(forEmbedded ? [viteSingleFile(), viteCompression({ deleteOriginFile: true })] : [])
|
...(embeddedBuild ? [viteSingleFile(), viteCompression({ deleteOriginFile: true })] : [])
|
||||||
],
|
],
|
||||||
build: {
|
build: {
|
||||||
outDir: forEmbedded ? '../data' : './build',
|
outDir: embeddedBuild ? '../data' : './build',
|
||||||
emptyOutDir: true
|
emptyOutDir: true
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
|
|||||||
Reference in New Issue
Block a user