Skip to content

NextJS-环境变量 ? #158

Open
Open
@yaofly2012

Description

@yaofly2012

Requirement

  1. Node.js Everywhere with Environment Variables!

一、环境变量策略

1.1 如何定义环境变量?

项目根目录“环境变量声明文件”定义:

  1. .env
    默认的配文件
  2. .env.development
    开发环境(npm run dev)声明的变量,可以覆盖.env文件声明的同名变量。
  3. .env.production
    生产环境(npm run start)声明的变量,可以覆盖.env文件声明的同名变量。
  4. .env.local
    本地默认变量(可以视为运行应用的服务器环境),可以覆盖.env文件声明的同名变量,并且不应该提交到git仓库。
  5. .env.*.local.env.development.local.env.production.local
    本地环境变量(可以视为运行应用的服务器环境),优先级最高,一般配置环境机器上环境相关的配置。
    server.properties

1.2 怎么使用?

node环境(服务端或者编译阶段)可以使用(即环境变量都被挂载到process.env对象上)。

process.env.环境变量名

1.3 优先级:

npm run dev
image
npm run start
image

  1. 默认的配置文件(.env, .env.local)优先级最低;
    .env.local可以视为默认的本地文件。
  2. 接下来就是应用配置文件(.env.development, .env.production);
  3. 服务器非默认的本地文件优先级最高。
  • 这样“默认的配置变量”,“本地配置变量”的和"开发配置变量”优先级策略有点类似CSS优先级规则。
  • 可以简单的记忆:文件名字越长优先级越高。

1.4 环境变量变更

环境变量配置文件都是冷配置,发生变更都需要重启应用。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions