utquidem
Version:
The meta-framework suite designed from scratch for frontend-focused modern web development.
57 lines (45 loc) • 1.74 kB
Markdown
---
sidebar_position: 1
---
# 环境变量
:::tip 提示
- 当 `.env.*` 与 `.env` 同时存在,`.env.*` 会和 `.env` 进行合并,相同名称的环境变量以 `.env.*` 为准。
- 通过 `.env` 设置的环境变量,优先级高于 `shell` 指定的环境变量。
:::
Modern.js 默认提供了下列环境变量:
- `NODE_ENV`:表示当前的执行环境。
- `PORT`:表示应用运行的端口。
- `ASSET_PREFIX`:表示 **CDN** 前缀。
其中 `NODE_ENV` 在不同的执行命令下,具有不同的默认值:
- `production`:执行 `modern build`、`modern preview` 命令时的默认值。
- `test`:执行 `modern test` 命令时的默认值。
- `development`:执行 `modern dev` 命令时的默认值,同时也是其他所有情况下的默认值。
## 自定义环境变量
除了上述默认提供的环境变量,还可以通过 `shell` 或 `.env` 文件自定义环境变量。
### 通过 `shell` 指定
在命令前添加自定义环境变量:
```shell
FOO=123 BAR=456 pnpm run dev
```
### 通过 `.env` 文件指定
在项目根目录创建 `.env` 文件,其中添加自定义环境变量:
```env
FOO=123
BAR=456
```
更多文件格式:
- `.env`:默认文件。
- `.env.development`:当 `NODE_ENV` 值为 `development` 时,读取该文件。
- `.env.production`:当 `NODE_ENV` 值为 `production` 时,读取该文件。
- `.env.test`:当 `NODE_ENV` 值为 `test` 时,读取该文件。
## 使用环境变量
### JS/TS 代码内使用
通过 `process.env.*` 直接获取环境变量。
```js
console.log(process.env.NODE_ENV);
// "development"
```
### HTML 代码片段使用
```html title="config/html/head.ejs"
<meta name='env' content="<%=process.env.NODE_ENV %>">
```