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 = 100002、在代码中使用
在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);