mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
2ab1ae7f61
* Updated examples for build-time env configuration for v8 * Add comment to build time config example with how to include entire .env |
||
---|---|---|
.. | ||
pages | ||
.env | ||
next.config.js | ||
package.json | ||
README.md |
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 innext.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.