1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/with-universal-configuration-build-time
Fredrik Höglund 2ab1ae7f61 Updated examples for build-time env configuration for v8 (#6237)
* Updated examples for build-time env configuration for v8

* Add comment to build time config example with how to include entire .env
2019-02-11 14:15:06 +01:00
..
pages Updated examples for build-time env configuration for v8 (#6237) 2019-02-11 14:15:06 +01:00
.env Updated examples for build-time env configuration for v8 (#6237) 2019-02-11 14:15:06 +01:00
next.config.js Updated examples for build-time env configuration for v8 (#6237) 2019-02-11 14:15:06 +01:00
package.json Updated examples for build-time env configuration for v8 (#6237) 2019-02-11 14:15:06 +01:00
README.md Updated examples for build-time env configuration for v8 (#6237) 2019-02-11 14:15:06 +01:00

Deploy to now

With universal configuration

How to use

Using create-next-app

Execute create-next-app with Yarn or npx to bootstrap the example:

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 manually

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

Deploy it to the cloud with now (download)

now

The idea behind the example

This example shows how to use environment variables and customize one based on NODE_ENV for your application using dotenv, a .env-file and next.config.js.

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.

Please note

  • It is a bad practice to commit env vars to a repository. Thats why you should normally gitignore your .env file.
  • Any env var you expose in next.config.js will 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 .env and 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.