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

Posted

技术标签:

【中文标题】不能将 dotenv 与 ES6 模块一起使用【英文标题】:Can't use dotenv with ES6 modules 【发布时间】:2021-02-13 15:41:21 【问题描述】:

我正在将 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

【问题讨论】:

向我们展示您尝试转换的 commonJS 语法 【参考方案1】:
import "dotenv/config.js";

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

【讨论】:

【参考方案2】:

尝试将 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);

【讨论】:

我很高兴能帮助@DavidMulholland。请考虑接受此答案或任何其他对您有用的答案。

以上是关于不能将 dotenv 与 ES6 模块一起使用的主要内容,如果未能解决你的问题,请参考以下文章

将角度服务与 es6 模块一起使用是不是有意义?

将 knex 与 es6 模块一起使用

如何将 ES6 导入与“请求”npm 模块一起使用

如何将 ES6、AMD 和 CJS 模块与 JSPM 和系统 js 一起使用?

NestJS - 使用 DotEnv

如何将 Babel 与 Electron 一起使用?