diff --git a/packages/experience/src/constants/env.ts b/packages/experience/src/constants/env.ts index d30c92c950e..654b9f07fd6 100644 --- a/packages/experience/src/constants/env.ts +++ b/packages/experience/src/constants/env.ts @@ -1,4 +1,9 @@ import { yes } from '@silverhand/essentials'; +const normalizeEnv = (value: unknown) => + value === null || value === undefined ? undefined : String(value); + +const isProduction = import.meta.env.PROD; + export const isDevFeaturesEnabled = - process.env.NODE_ENV !== 'production' || yes(process.env.DEV_FEATURES_ENABLED); + !isProduction || yes(normalizeEnv(import.meta.env.DEV_FEATURES_ENABLED)); diff --git a/packages/experience/vite.config.ts b/packages/experience/vite.config.ts index 69d98afc845..50e7016d177 100644 --- a/packages/experience/vite.config.ts +++ b/packages/experience/vite.config.ts @@ -26,6 +26,9 @@ const buildConfig = (mode: string): UserConfig => ({ viteCompression({ disable: mode === 'development' }), viteCompression({ disable: mode === 'development', algorithm: 'brotliCompress' }), ], + define: { + 'import.meta.env.DEV_FEATURES_ENABLED': JSON.stringify(process.env.DEV_FEATURES_ENABLED), + }, build: { // Use the same browserslist configuration as in README.md. // Consider using the esbuild target directly in the future.