mirror of
https://github.com/lobehub/lobe-chat.git
synced 2026-06-14 03:30:19 +00:00
♻️ refactor(spa): use __DEV__ define instead of process.env.NODE_ENV (#14696)
* ♻️ refactor(spa): use __DEV__ define instead of process.env.NODE_ENV
The Vite `__DEV__` define and its global type declaration are already
in place (plugins/vite/sharedRendererConfig.ts, src/types/global.d.ts).
Replace `process.env.NODE_ENV` checks across SPA-only files with the
`__DEV__` boolean so the bundler can statically eliminate dev-only
branches in production builds.
Server-side files (app/, server/, libs/next, libs/trpc, libs/better-auth,
envs, instrumentation) and modules that are also imported by Next.js
SSR pages (e.g. components/Loading/BrandTextLoading) are intentionally
left untouched to avoid runtime `__DEV__ is not defined` errors.
* fix(vitest): define __DEV__ and related constants for test environment
Vitest runs outside the Vite SPA build pipeline, so the __DEV__ define
injected by sharedRendererDefine was not available during tests. This
caused ReferenceError: __DEV__ is not defined in any test file that
transitively imports code using the __DEV__ constant.
Add a block to vitest.config.mts that mirrors the SPA defines:
- __DEV__: true (test is not production)
- __CI__: mirrors process.env.CI
- __ELECTRON__/__MOBILE__: false (not testing platform-specific code)
* fix: replace missed isDevEnv reference with __DEV__ in AgentMockDevtools
This commit is contained in:
@@ -30,6 +30,12 @@ const alias = {
|
||||
};
|
||||
|
||||
export default defineConfig({
|
||||
define: {
|
||||
'__CI__': process.env.CI === 'true' ? 'true' : 'false',
|
||||
'__DEV__': process.env.NODE_ENV !== 'production' ? 'true' : 'false',
|
||||
'__ELECTRON__': 'false',
|
||||
'__MOBILE__': 'false',
|
||||
},
|
||||
optimizeDeps: {
|
||||
exclude: ['crypto', 'util', 'tty'],
|
||||
include: ['@lobehub/tts'],
|
||||
|
||||
Reference in New Issue
Block a user