.env 常量在 React 项目中不可读

.env constants not readable in React project

我在尝试获取 React 应用程序中 .env 文件的常量时遇到问题。我的应用程序结构非常基本:

my-react-app/
|- .env
|- .gitignore
|- .prettierrc
|- node-modules/
|- public/
|- src/
   |- Base.js
   |- App.js
|- package.json
|- yarn.lock
|- README.md

我正在使用 react-scripts 版本“3.2.0”

.env 看起来像这样:

# .env
# Auto-logout values
REACT_APP_LOGOUT_PERIOD_MINS=15 

并且 Base.js 文件如下所示:

require('dotenv').config({ path: '../.env' })
console.log(process.env)

export const LOGOUT_PERIOD_MINS = process.env.REACT_APP_LOGOUT_PERIOD_MINS

我从 Base.js 中的 console.log() 调用中得到的是:

{NODE_ENV: "development", PUBLIC_URL: ""}

我试过将 Base 放在根目录中,但出错了,因为它在 src 之外。我试过使用和不使用 path 配置设置。我做错了什么?

我认为您不需要在 CRA 中要求 dotenv,没有它应该也能工作。显式导入它并设置路径可能会覆盖默认的 CRA .env 设置。

根据我的评论,您可能想要关闭终端 window 并从新终端重新 运行 yarn start。 9/10 这就是环境变量未显示的原因。 :)