env.spec.ts — vite Source File
Architecture documentation for env.spec.ts, a typescript file in the vite codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR c768cf64_25c5_e957_9667_10aba8bb219a["env.spec.ts"] 7fa76fc1_cb1b_cf98_0900_1217276f6616["env.ts"] c768cf64_25c5_e957_9667_10aba8bb219a --> 7fa76fc1_cb1b_cf98_0900_1217276f6616 dbbbbbec_1500_ac8a_4605_9194e2cfb45d["loadEnv"] c768cf64_25c5_e957_9667_10aba8bb219a --> dbbbbbec_1500_ac8a_4605_9194e2cfb45d 51e96894_3556_ed5c_1ede_97d449867adf["node:path"] c768cf64_25c5_e957_9667_10aba8bb219a --> 51e96894_3556_ed5c_1ede_97d449867adf a340ba46_b2b7_3048_3bb3_6907a74c8464["vitest"] c768cf64_25c5_e957_9667_10aba8bb219a --> a340ba46_b2b7_3048_3bb3_6907a74c8464 style c768cf64_25c5_e957_9667_10aba8bb219a fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { join } from 'node:path'
import { describe, expect, test } from 'vitest'
import { loadEnv } from '../env'
const dirname = import.meta.dirname
describe('loadEnv', () => {
test('basic', () => {
expect(loadEnv('development', join(dirname, './env')))
.toMatchInlineSnapshot(`
{
"VITE_APP_BASE_ROUTE": "/",
"VITE_APP_BASE_URL": "/",
"VITE_ENV1": "ENV1",
"VITE_ENV2": "ENV2",
"VITE_ENV3": "ENV3",
}
`)
})
test('specific prefix', () => {
expect(loadEnv('development', join(dirname, './env'), 'VVITE'))
.toMatchInlineSnapshot(`
{
"VVITE_A": "A",
"VVITE_B": "B",
}
`)
})
test('override', () => {
expect(loadEnv('production', join(dirname, './env')))
.toMatchInlineSnapshot(`
{
"VITE_APP_BASE_ROUTE": "/app/",
"VITE_APP_BASE_URL": "/app/",
}
`)
})
test('override 2', () => {
expect(loadEnv('development2', join(dirname, './env')))
.toMatchInlineSnapshot(`
{
"VITE_APP_BASE_ROUTE": "source",
"VITE_APP_BASE_URL": "source",
"VITE_SOURCE": "source",
}
`)
})
test('VITE_USER_NODE_ENV', () => {
loadEnv('development', join(dirname, './env'))
expect(process.env.VITE_USER_NODE_ENV).toEqual(undefined)
})
test('VITE_USER_NODE_ENV for dev behaviour in build', () => {
const _nodeEnv = process.env.NODE_ENV
process.env.NODE_ENV = 'production'
loadEnv('testing', join(dirname, './env'))
expect(process.env.VITE_USER_NODE_ENV).toEqual('development')
process.env.NODE_ENV = _nodeEnv
})
test('Already exists VITE_USER_NODE_ENV', () => {
process.env.VITE_USER_NODE_ENV = 'test'
loadEnv('development', join(dirname, './env'))
expect(process.env.VITE_USER_NODE_ENV).toEqual('test')
})
test('prioritize existing process.env', () => {
process.env.VITE_ENV_TEST_ENV = 'EXIST'
expect(loadEnv('existing', join(dirname, './env'))).toMatchInlineSnapshot(`
{
"VITE_APP_BASE_ROUTE": "/",
"VITE_APP_BASE_URL": "/",
"VITE_ENV_TEST_ENV": "EXIST",
"VITE_USER_NODE_ENV": "test",
}
`)
})
})
Domain
Source
Frequently Asked Questions
What does env.spec.ts do?
env.spec.ts is a source file in the vite codebase, written in typescript. It belongs to the ViteCore domain.
What does env.spec.ts depend on?
env.spec.ts imports 4 module(s): env.ts, loadEnv, node:path, vitest.
Where is env.spec.ts in the architecture?
env.spec.ts is located at packages/vite/src/node/__tests__/env.spec.ts (domain: ViteCore, directory: packages/vite/src/node/__tests__).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free