With universal configuration
How to use
npx create-next-app --example with-universal-configuration-build-time with-universal-configuration-build-time-app # or yarn create next-app --example with-universal-configuration-build-time with-universal-configuration-build-time-app
Download the example:
curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-universal-configuration-build-time cd with-universal-configuration-build-time
Install it and run:
npm install VARIABLE_EXAMPLE=next.js npm run dev # or yarn VARIABLE_EXAMPLE=next.js yarn dev
The idea behind the example
This example shows how to use environment variables and customize one based on NODE_ENV for your application using
When you build your application the environment variable is transformed into a primitive (string or undefined) and can only be changed with a new build. This happens for both client-side and server-side. If the environment variable is used directly in your application it will only have an effect on the server side, not the client side.
- It is a bad practice to commit env vars to a repository. Thats why you should normally gitignore your
- Any env var you expose in
next.config.jswill be publicly available and exposed to the client.
- This example sets the environment configuration at build time, meaning the same build might not be used in e.g. both staging and production. For a solution which sets the environment at runtime, see the example with-universal-configuration-runtime.
- If you have many variables in
.envand want to expose them without listing them all in
next.config.js, see the example with-dotenv. That example automatically exposes any variable that has been referenced in code, but keeps all other variables secret.