仅当在每个文件中导入并配置 dotenv 时环境变量才起作用(而不是仅在 index.ts 中)

Oam*_*nji 2 node.js typescript dotenv

我应该只需要这样做:

import dotenv from "dotenv";
dotenv.config();
Run Code Online (Sandbox Code Playgroud)

在index.js 文件中。但.env只有当我在每个使用 .env 变量的文件中显式导入和配置 dotenv 时,我的变量才起作用。

这是我的tsconfig.json

{
  "compilerOptions": {
    "rootDirs": ["src"],
    "baseUrl": "./src",
    "outDir": "dist",
    "lib": ["es2020"],
    "target": "es2020",
    "module": "esnext",
    "moduleResolution": "node",
    "allowJs": true,
    "esModuleInterop": true,
    "types": ["node"]
  },

}
Run Code Online (Sandbox Code Playgroud)

不知道为什么,有什么想法吗?

index.ts在此输入图像描述

connectToDatabase.ts 在此输入图像描述

.env 在此输入图像描述

在此输入图像描述

Zac*_*ger 9

导入被提升,因此直到其余导入之后dotenv.config才会调用您的。要通过一次导入/配置调用来实现此功能,您可以将其放入一个单独的文件中并导入:

// env.ts
import dotenv from 'dotenv'
dotenv.config()
Run Code Online (Sandbox Code Playgroud)
// index.ts
import './env'
// followed by all your other imports
Run Code Online (Sandbox Code Playgroud)

将来,请发布您的代码,而不是代码的屏幕截图。复制粘贴更快更容易!