簡體   English   中英

不能將 dotenv 與 ES6 模塊一起使用

[英]Can't use dotenv with ES6 modules

我正在將 Express 應用程序從 CommonJS require語法移動到 ES6 模塊import語法。 這很好,直到我嘗試使用dotenv加載我的環境變量,並且每次我嘗試訪問這些變量時,它們都會返回未定義的狀態。

應用程序.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
import "dotenv/config.js";

對於所有文件中的.env變量,請使用上述內容。

嘗試將 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);
 // importing environmental variables
        import express from 'express';
        import { config } from "dotenv";
        config({ path: process.ENV })
            
        let x = process.env.David;
        console.log(x);
import path from 'path';
import { fileURLToPath } from 'url';
import "dotenv/config.js";
    
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

dotenv.config({path:`${__dirname}/.env`});

我這樣做是因為 my.env 文件位於 src 文件夾(projectName/src/.env)中,並且 dotenv 未檢測到它。 但實際上更容易將.env 文件移動到項目文件夾(projectName/.env)並使用:

import "dotenv/config.js";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM