不能将dotenv与ES6模块一起使用

问题描述

我正在将Express应用程序从Commonjs require语法转移到ES6模块import语法。这很好,直到我尝试使用dotenv来加载我的环境变量,并且每次尝试访问这些变量时,它们都会以未定义的形式返回。

app.js

// importing environmental variables
import dotenv from 'dotenv';
dotenv.config();
import express from 'express';

let x = process.env.David;
console.log(x);

.env

David = test

解决方法

尝试将env配置放入单独的文件中,然后首先导入。

// loadEnv.js
import dotenv from 'dotenv';
dotenv.config()


// index.js
import './loadEnv';
import express from 'express';
let x = process.env.David;
console.log(x);
,
import "dotenv/config.js";

对于所有文件中的.env变量,请使用上述变量。