如何使用dotenv访问TypeScript中的.env文件变量?

问题描述

我正在尝试使用.env文件在TypeScript React项目中存储API密钥。我的.env文件位于项目的根目录中,我正在尝试通过src/index.tsxprocess.env访问其变量。

.env

FOO=foo

src/index.tsx

import * as dotenv from "dotenv";

console.log(dotenv.config()); // prints TypeError: fs.readFileSync is not a function
console.log(process.env.FOO); // prints undefined

看来dotenv.config()抛出错误,所以我认为这就是问题所在。只是不确定如何解决它。我尝试将.env移到src目录中,并将路径传递到函数中,例如dotenv.config({ path: `${__dirname}/.env` }),但仍然出现相同的错误

dotenv似乎是在Node.js项目中使用环境变量的最常见方法,但是如果有更好的选择,我也很想听听那些。

任何想法和想法都会受到赞赏。

解决方法

将环境变量重命名为REACT_APP_FOO并重新启动react-scripts似乎可以解决问题。它无需调用dotenv.config()就可以工作。不太确定为什么会这样工作,所以我很想听听某人对此的见识。

,

您可以通过在项目根目录中首先调用require('dotenv').config()来访问变量。那么您可以像process.env.FOO那样使用它们。

您必须考虑致电process.env.FOO