前言
1、用过vue-cli脚手架的都知道,在根目录下面可以自定义 .env文件,也可以自定义 .env.dev 、.env.prod 等等文件,在package.json的scripts 指定即可。
2、vue-cli3的环境变量参数其实是使用了dotenv插件。nodejs环境并不会自带该插件。
一、dotenv 的作用
1、将.env文件中的配置文件转为 process.env变量的值。
2、项目中集中管理配置项。
二、使用方法
1、引包
npm i dotenv @types/dotenv -S
2、在项目根目录新建.env文件,并填写配置参数
NODE_ENV = dev
SERVER_PORT = 8880
# mysql 数据库的一些配置
DB_HOST = localhost
DB_NAME = test
DB_USER = root
DB_PASSWORD = root
DB_PORT = 3306
DB_DIALECT = mysql
DB_DEBUG = true
JWT_SECRET = hahaha
JWT_EXPIRE = 7d
STATIC_PATH = statics
3、在其他ts文件中引入并使用
入口文件中定义一次即可
import dotenv from 'dotenv'
dotenv.config({ path: '.env' }) //config()中是配置.env文件的位置,如果在根目录,此处括号中可以留空
// 使用
console.log(process.env.NODE_ENV ) // dev
console.log(process.env.SERVER_PORT ) // 8880
三、config 的定义(便于整个项目的维护)
可在根目录下新建 config文件夹,再新建一个index.ts文件,在其它文件中引入该文件过去全局配置信息。
// log4j 配置
const NODE_ENV = process.env.NODE_ENV || 'dev';
const logConfig = require('./' + NODE_ENV + '/log4js.json'); // log4js配置文件
const config = {
server: {
port: process.env.SERVER_PORT,
},
db: {
db_host: process.env.DB_HOST,
db_name: process.env.DB_NAME,
db_user: process.env.DB_USER,
db_password: process.env.DB_PASSWORD,
db_port: process.env.DB_PORT
},
logConfig: logConfig,
jwt: {
jwt_secret: process.env.JWT_SECRET,
jwt_expire: process.env.JWT_EXPIRE
},
isValidateCaptcha: true, // 是否校验验证码
}
export default config
总结
使用 dotenv 可以集中管理配置信息,让我们免于在各个文件中引入配置文件,也可以很好的解决敏感信息的泄漏,利于后期代码维护。