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

o7jaxewo  于 2022-12-26  发布在  Node.js
关注(0)|答案(1)|浏览(154)

我应该只需要做:

import dotenv from "dotenv";
dotenv.config();

但是我的.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"]
  },

}

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

connectToDatabase.ts

.env

eoigrqb6

eoigrqb61#

导入are hoisted,所以你的dotenv.config直到你的其他导入 * 之后 * 才会被调用。为了让这在一个import/config调用中工作,你可以把它放在一个单独的文件中,然后导入它:

// env.ts
import dotenv from 'dotenv'
dotenv.config()
// index.ts
import './env'
// followed by all your other imports

以后,请发布你的代码,而不是你的代码截图。复制粘贴更快更容易!

相关问题