dotenv 环境变量

dotenvopen in new window 是一个独立的node模块,用于从 .env 中加载环境变量到 process.envopen in new window

安装

必要条件

dotenv一般用于node项目,因此你需要把它安装到你的项目空间中,如果你还没有项目空间,那么一下命令将为你新建一个。

# 新建 my-favor-project
mkdir my-favor-project && cd my-favor-project
npm init

然后一路回车,你将生成一个 package.json 文件

添加 dotenv 依赖

# 安装到你的项目环境
npm install dotenv --save

添加变量

在 .env 中添加环境变量

cat <<EOT >> .env
# S3 Bucket配置
S3_BUCKET="test bucket"
# 你的密钥
SECRET_KEY="test secretKey"
EOT
cat .env

使用变量

cat <<EOT >> index.js
require('dotenv').config()
console.log(process.env.S3_BUCKET);
console.log(process.env.SECRET_KEY);
EOT

...或者使用ES6

import * as dotenv from 'dotenv'
dotenv.config()
console.log(process.env.S3_BUCKET);
console.log(process.env.SECRET_KEY);

使用多个配置文件

比较常见的场景是,你本地的开发环境与生产环境的需要的配置是不一样的。稍微修改代码,我们即可实现,代码如下:

修改 index.js 文件

require('dotenv').config({ path: `.env.${process.env.NODE_ENV}` });
console.log(process.env.S3_BUCKET);
console.log(process.env.SECRET_KEY);

增加生产环境的配置

cat <<EOT >> .env.production
# S3 Bucket配置
S3_BUCKET="production bucket"
# 你的密钥
SECRET_KEY="production secretKey"
EOT
cat .env.production

查看效果

export NODE_ENV=production && node index.js

恭喜你,又 Get 了一个新技能! 🎉

Last Updated:
Contributors: wnow20