diff --git a/.env.example b/.env.example index 5319ccb..8f5ade7 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,5 @@ # please create .env.dev and .env.prod based on this file VITE_BASE=/ +VITE_DO_LOG_SCENERY=true +VITE_DO_ENABLE_BUILTIN_SCENERIES=false +VITE_DO_SHOW_BACK_MASEUKO=false diff --git a/src/components/SceneryManager.jsx b/src/components/SceneryManager.jsx index a10a243..f6106c4 100644 --- a/src/components/SceneryManager.jsx +++ b/src/components/SceneryManager.jsx @@ -166,7 +166,7 @@ export default function SceneryManager(props) { }, [setScenery]); useEffect(() => { - if(Constants.sceneryFiles.fetchDisable) return; + if(!Constants.sceneryFiles.enableBuiltIn) return; updateSceneryList(); }, [updateSceneryList]); diff --git a/src/helpers/constants.js b/src/helpers/constants.js index 279a9d8..df7f06e 100644 --- a/src/helpers/constants.js +++ b/src/helpers/constants.js @@ -1,6 +1,8 @@ +import { readEnvBool, readEnvString} from './envHelper'; + const Constants = { - buildVersion: '1.7.2', - showBackMaseuko: false, + buildVersion: readEnvString('VITE_APP_VERSION') ?? 'unknown', + showBackMaseuko: readEnvBool('VITE_DO_SHOW_BACK_MASEUKO') ?? false, map: { zoomSensitivity: 0.002, zoomMin: 0.03, @@ -15,7 +17,7 @@ const Constants = { mapZoomObjectDetailsThreshold: 0.5 }, parser: { - logSceneryAfterFinished: true, + logSceneryAfterFinished: readEnvBool('VITE_DO_LOG_SCENERY') ?? false, sceneryInfoVersionMin: 29, sceneryInfoVersionMax: 30, alwaysShowLogDialog: false, @@ -73,7 +75,7 @@ const Constants = { invalidSceneryInfo: true }, sceneryFiles: { - fetchDisable: true, + enableBuiltIn: readEnvBool('VITE_DO_ENABLE_BUILTIN_SCENERIES') ?? false, fetchBaseUrl: `${import.meta.env.BASE_URL}sceneries/`, fetchListUrl: `${import.meta.env.BASE_URL}sceneries/sceneries.json`, }, diff --git a/src/helpers/envHelper.js b/src/helpers/envHelper.js new file mode 100644 index 0000000..4a1f869 --- /dev/null +++ b/src/helpers/envHelper.js @@ -0,0 +1,12 @@ +export const readEnvString = (key) => { + return import.meta.env[key]; +}; + +export const readEnvBool = (key) => { + const value = import.meta.env[key]; + switch(value) { + case "true": return true; + case "false": return false; + default: return null; + } +}; diff --git a/vite.config.mjs b/vite.config.mjs index c578a84..73fddce 100644 --- a/vite.config.mjs +++ b/vite.config.mjs @@ -1,5 +1,8 @@ import { defineConfig, loadEnv } from 'vite'; import react from '@vitejs/plugin-react'; +import fs from 'fs'; + +const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf-8')); export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), ''); @@ -9,6 +12,9 @@ export default defineConfig(({ mode }) => { plugins: [ react(), ], + define: { + 'import.meta.env.VITE_APP_VERSION': JSON.stringify(packageJson.version), + }, build: { target: 'es2015', },