diff --git a/apps/stage-tamagotchi/electron.vite.config.ts b/apps/stage-tamagotchi/electron.vite.config.ts index 27616f8db..246722613 100644 --- a/apps/stage-tamagotchi/electron.vite.config.ts +++ b/apps/stage-tamagotchi/electron.vite.config.ts @@ -73,13 +73,19 @@ export default defineConfig({ plugins: [ { - name: 'proj-airi:define-runtime-environment', - config() { - return { - define: { - 'import.meta.env.RUNTIME_ENVIRONMENT': '\'electron\'', - }, + name: 'proj-airi:defines', + config(ctx) { + const define: Record = { + 'import.meta.env.RUNTIME_ENVIRONMENT': '\'electron\'', } + if (ctx.mode === 'development') { + define['import.meta.env.URL_MODE'] = '\'server\'' + } + if (ctx.mode === 'production') { + define['import.meta.env.URL_MODE'] = '\'file\'' + } + + return { define } }, }, diff --git a/packages/stage-shared/src/environment.ts b/packages/stage-shared/src/environment.ts index 70ad92040..61149b1c7 100644 --- a/packages/stage-shared/src/environment.ts +++ b/packages/stage-shared/src/environment.ts @@ -5,3 +5,11 @@ export function isStageWeb(): boolean { export function isStageTamagotchi(): boolean { return import.meta.env.RUNTIME_ENVIRONMENT === 'electron' } + +export function isUrlMode(mode: 'file' | 'server'): boolean { + if (!import.meta.env.URL_MODE) { + return mode === 'server' + } + + return import.meta.env.URL_MODE === mode +} diff --git a/packages/stage-shared/src/url.ts b/packages/stage-shared/src/url.ts index 185aa99e0..2d5fc6913 100644 --- a/packages/stage-shared/src/url.ts +++ b/packages/stage-shared/src/url.ts @@ -1,4 +1,4 @@ -import { isStageTamagotchi, isStageWeb } from './environment' +import { isUrlMode } from './environment' export function isUrl(url: string) { try { @@ -12,16 +12,13 @@ export function isUrl(url: string) { } export function withBase(url: string) { - if (isStageWeb()) { + if (isUrlMode('server')) { return url } - if (isStageTamagotchi()) { - return url.startsWith('/') - ? `.${url}` - : url.startsWith('./') - ? url - : `./${url}` - } - throw new Error('Unknown environment') + return url.startsWith('/') + ? `.${url}` + : url.startsWith('./') + ? url + : `./${url}` }