问题描述
我正在尝试使用.env
文件在TypeScript React项目中存储API密钥。我的.env
文件位于项目的根目录中,我正在尝试通过src/index.tsx
从process.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