使用 dotenv 加载 环境变量

项目地址: https://github.com/motdotla/dotenv

主要就是可以读取 .env 文件,然后把里面的变量加载到 process.env 中。

基本用法

用法很简单,就不赘述

拓展用法

package.json scripts 里加载环境变量

由于我需要在 scripts 里执行一些命令,这些命令需要读取环境变量

虽然可以 用 cross-env 这样,但是这样 很繁琐,每次新增,改变 环境变量,都需要变动这里,非常的麻烦

"scripts":{
  "start": "cross-env DB_URL=prodnode DB_HOST=prodnode index.js",
  "dev": "cross-env DB_URL=devnode index.js"
}

改造为 dotenv ,非常方便,每次修改环境变量,只要修改 对应的 .env 文件即可

{
  "scripts": {
    "dev": "dotenv -e .env.dev -- node index.js",
    "test": "dotenv -e .env.test -- node index.js",
    "prod": "dotenv -e .env.prod -- node index.js"
  }
}
代码解释:

.env.dev 文件里的环境变量加载到 process.env 中,然后执行 node index.js, 这时候 index.js 里就可以读取到环境变量了

dotenv -e .env.dev -- node index.js
 
#dotenv -e .env.dev:加载文件名为 .env.dev 的环境变量( -e .env.dev 是传递给dotenv的参数)
 
# -- 是分隔符,分割 dotenv 和 node 这两个命令
 
#node index.js  : 执行 node index.js