Vite plugin for providing configurations from environment variables at runtime.
The generated template can be populated with envsubst in production.
Add envConfig plugin to vite.config.js / vite.config.ts and provide a list of environment variable names:
// vite.config.js / vite.config.ts
import { envConfig } from '@geprog/vite-plugin-env-config';
export default {
  plugins: [envConfig({ variables: ['BACKEND_URL'] })],
};To access the environment variables use the built-in getter:
import { getEnvConfig } from '@geprog/vite-plugin-env-config';
const backendURL = getEnvConfig('BACKEND_URL');For production use envsubst as outlined in the next section.
To adhere to the principles of the twelve-factor app
you might need to access environment variables that are set when your frontend server starts.
Instead of building your frontend on startup,
you can use a config template like the one above and populate it using envsubst:
CMD ["/bin/sh", "-c", "envsubst < ./dist/env-config.template.js > ./dist/env-config.js && exec nginx -g 'daemon off;'"]@geprog/vite-plugin-env-config generates the required template from a list of variable names and provides the already populated file via the dev-server during development.