docs/wiki/2.16-Set-Up-Development-Environment.md
How to configure environment variables and generated config for development and builds.
The app uses static environment files for flags (dev/prod/stage) and a .env file for secrets and dynamic values. Values from .env are turned into TypeScript constants so you use type-safe imports, not process.env.
cp .env.example .env
Edit .env and add any keys you need (e.g. API keys for optional integrations). Do not commit .env; the generated file src/app/config/env.generated.ts is gitignored.
import { ENV } from './app/config/env.generated';
const value = ENV.SOME_KEY;
Or with helpers:
import { getEnv, getEnvOrDefault } from './app/util/env';
const value = getEnv('SOME_KEY');
const withDefault = getEnvOrDefault('SOME_KEY', 'default');
Types and keys are derived from .env when you run any build or serve command.
.env.ng serve or a build command so env.generated.ts is regenerated.ENV.NEW_KEY or getEnv('NEW_KEY') in code.src/environments/environment.ts, environment.prod.ts, environment.stage.ts (production/stage flags, version)..env → src/app/config/env.generated.ts (secrets and per-developer values).