初始化
This commit is contained in:
89
docs/base/12-env.md
Normal file
89
docs/base/12-env.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# 环境变量
|
||||
|
||||
主要介绍 `vite` 环境变量和 `uni` 环境变量。
|
||||
|
||||
## `vite` 环境变量
|
||||
|
||||
`Vite` 在一个特殊的 `import.meta.env` 对象上暴露环境变量。环境变量定义在 `.env` 文件里。
|
||||
|
||||
### .env 文件
|
||||
|
||||
创建环境文件:
|
||||
|
||||
```yml
|
||||
.env # 所有情况下都会加载
|
||||
.env.local # 所有情况下都会加载,但会被 git 忽略
|
||||
.env.[mode] # 只在指定模式下加载
|
||||
.env.[mode].local # 只在指定模式下加载,但会被 git 忽略
|
||||
|
||||
# 注意 .env.local 无法覆盖 .env.[mode]
|
||||
```
|
||||
|
||||
环境文件只包含环境变量的 `键值对` :
|
||||
|
||||
```yml
|
||||
VITE_SOME_KEY=123
|
||||
DB_PASSWORD=foobar
|
||||
```
|
||||
|
||||
> 为了防止意外地将一些环境变量泄漏到客户端,只有以 `VITE_` 为前缀的变量才会暴露给经过 `vite` 处理的代码。
|
||||
|
||||
如上配置,只有 `VITE_SOME_KEY` 会被暴露为 `import.meta.env.VITE_SOME_KEY` 提供给客户端源码,而 `DB_PASSWORD` 则不会。
|
||||
|
||||
```js
|
||||
console.log(import.meta.env.VITE_SOME_KEY) // "123"
|
||||
console.log(import.meta.env.DB_PASSWORD) // undefined
|
||||
```
|
||||
|
||||
### mode 模式
|
||||
|
||||
Vite 允许你为不同的构建环境指定不同的模式。通常在 `npm scripts` 里面指定 `mode` 参数:
|
||||
|
||||
```sh
|
||||
"scripts": {
|
||||
"dev": "uni",
|
||||
"dev-dev": "uni --mode development",
|
||||
"dev-test": "uni --mode test",
|
||||
"dev-prod": "uni --mode production",
|
||||
}
|
||||
```
|
||||
|
||||
运行不同模式的脚本时,`Vite` 会自动加载对应的 `.env.[mode]` 文件,就能获取到不同的环境变量。
|
||||
|
||||
`Vite` 运行 `dev` 时默认会加载 `.env.development` 文件(若有)。
|
||||
|
||||
`Vite` 运行 `build` 时默认会加载 `.env.production` 文件(若有)。
|
||||
|
||||
故,如上配置 `pnpm dev` 与 `pnpm dev-dev` 是一个效果。
|
||||
|
||||
## `uni` 环境变量
|
||||
|
||||
`uni` 环境变量这里指运行 `uni` 的平台变量,通过 `vite` 的 `define` 配置可以暴露出来。
|
||||
|
||||
```
|
||||
define: {
|
||||
__UNI_PLATFORM__: JSON.stringify(UNI_PLATFORM),
|
||||
},
|
||||
```
|
||||
|
||||
代码里面使用:
|
||||
|
||||
```js
|
||||
export const platform = __UNI_PLATFORM__
|
||||
export const isH5 = __UNI_PLATFORM__ === 'h5'
|
||||
export const isApp = __UNI_PLATFORM__ === 'app'
|
||||
export const isMp = __UNI_PLATFORM__.startsWith('mp-')
|
||||
const PLATFORM = {
|
||||
platform,
|
||||
isH5,
|
||||
isApp,
|
||||
isMp,
|
||||
}
|
||||
export default PLATFORM
|
||||
```
|
||||
|
||||
## 总结
|
||||
|
||||
本文描写了 `vite` 环境变量和 `uni` 环境变量如何配置和使用。
|
||||
|
||||
全文完~
|
||||
Reference in New Issue
Block a user