S16-00 专题-插件-dotenv
[TOC]
索引
- dotenv.config:
({path?,encoding?,debug?,override?})
,加载.env
文件,并将其中的键值对加入到process.env
中。 - dotenv.parse:
(contents)
,用于手动解析.env
文件的内容。
基础
dotenv: 作用是将 .env
文件中的键值对加载到 process.env
中。通过这种方式,应用程序可以根据环境的不同(开发、测试、生产等)来动态加载不同的配置。
安装:
sh
pnpm i dotenv
▸ 基本使用
1、配置.env
或.env.production
或.env.development
文件
yaml
# URL前缀
VITE_PREFIX_URL = '/cms2403/'
# API
VITE_BASE_URL = 'http://codercba.com:5000'
VITE_TIME_OUT = 10000
2、在代码中使用
在node中使用
js// 1. 在应用的最上方加载 dotenv require('dotenv').config(); // 2. 现在可以通过 process.env 来访问环境变量 const baseUrl = process.env.VITE_BASE_URL; const timeout = process.env.VITE_TIME_OUT;
在
vite.config.ts
中使用tsimport dotenv from 'dotenv' export default ({ mode }: any) => { // 1. 加载 dotenv 到 process.env 中 dotenv.config({ path: `.env.${mode}` }) return defineConfig({ // 2. 通过 process.env 访问加载的常量 base: process.env.VITE_PREFIX_URL, }) }
▸ 应用:
API
基本方法
config()
dotenv.config():({path?,encoding?,debug?,override?})
,加载 .env
文件,并将其中的键值对加入到 process.env
中。
path?:
string
,默认:'/.env'
,指定.env
文件的路径。encoding?:
utf8 | gbk | ...
,默认:utf8
,指定文件的编码格式。debug?:
boolean
,默认:false
,启用调试信息输出,帮助诊断加载过程中可能出现的问题。override?:
boolean
,默认:false
,是否覆盖已存在的环境变量。返回:
result:
{error, parsed}
,返回一个包含两个主要属性的对象。- error:
Error | null
,加载.env
文件出错时的值。加载成功时为null。 - parsed:
{key: value,...} | null
,包含从.env
文件中解析出的环境变量,格式为键值对对象。加载出错时为null。
- error:
- js
// 环境变量 DB_HOST=localhost DB_PORT=5432 DB_USER=myuser DB_PASS=mypassword
- js
// 1. 默认环境变量文件路径 .env const result = require('dotenv').config(); if (result.error) { console.error('Error:', result.error); } else { // 通过result.parsed访问获取的环境变量 console.log(result.parsed); }
- js
// 2. 自定义环境变量文件路径 ./config/.env const result = require('dotenv').config({ path: './config/.env' }); if (result.error) { console.error('Error loading .env:', result.error); } else { // 通过process.env访问获取的环境变量 console.log(process.env); }
parse()
dotenv.parse():(contents)
,用于手动解析 .env
文件的内容。
contents:
string
,要解析的字符串内容,通常是.env
文件的内容。需符合.env
文件格式。对比config(): parse()不会自动加载
.env
文件,而是直接解析传入的字符串。返回:
parsed:
{key: value,...}
,返回一个包含.env文件中每个键值对的解析结果的对象。- js
// 环境变量 DB_HOST=localhost DB_PORT=5432 DB_USER=myuser DB_PASS=mypassword # This is a comment
- js
// 1. 基本使用 const dotenv = require('dotenv'); const envContent = ` DB_HOST=localhost DB_PORT=5432 DB_USER=myuser DB_PASS=mypassword # This is a comment `; const parsed = dotenv.parse(envContent); console.log(parsed);