mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
## Summary - add native Turbopack support for `import.meta.env.DEV`, `PROD`, `MODE`, `BASE_URL`, and `SSR` - statically analyze built-in values for dead-code elimination while exposing the complete runtime object - derive `BASE_URL` from the Next.js `basePath` and include Vite-compatible trailing-slash formatting - add TypeScript declarations, focused execution and Next.js integration coverage, and Vite migration documentation ## Verification - `cargo fmt --all -- --check` - `cargo nextest run -p turbopack-tests -E 'test(import_meta_env)'` - `pnpm build-all` - `pnpm --filter=next types` - `NEXT_TEST_PREFER_OFFLINE=1 pnpm test-dev-turbo test/e2e/import-meta-env/import-meta-env.test.ts` - `NEXT_TEST_PREFER_OFFLINE=1 pnpm test-start-turbo test/e2e/import-meta-env/import-meta-env.test.ts` <!-- NEXT_JS_LLM -->
31 lines
764 B
TypeScript
31 lines
764 B
TypeScript
import { ClientEnv } from './client-env'
|
|
|
|
const env = import.meta.env
|
|
const { DEV, PROD, MODE, BASE_URL, SSR } = env
|
|
const bracketMode = import.meta.env['MODE']
|
|
const unknown = (env as unknown as Record<string, unknown>).UNKNOWN
|
|
|
|
if (!import.meta.env.SSR) {
|
|
require('this-server-only-package-does-not-exist')
|
|
}
|
|
|
|
if (import.meta.env.DEV && import.meta.env.PROD) {
|
|
require('this-impossible-package-does-not-exist')
|
|
}
|
|
|
|
export default function Page() {
|
|
return (
|
|
<main>
|
|
<dl id="server-env">
|
|
<dt>env</dt>
|
|
<dd>{JSON.stringify({ DEV, PROD, MODE, BASE_URL, SSR })}</dd>
|
|
<dt>bracket-mode</dt>
|
|
<dd>{bracketMode}</dd>
|
|
<dt>unknown</dt>
|
|
<dd>{String(unknown)}</dd>
|
|
</dl>
|
|
<ClientEnv />
|
|
</main>
|
|
)
|
|
}
|