【问题标题】:.env variables showing as undefined in create-react-app UI.env 变量在 create-react-app UI 中显示为未定义
【发布时间】:2020-09-04 13:03:48
【问题描述】:

我正在尝试设置特定于构建的环境变量,以便在使用 create-react-app 初始化的前端(not NodeJS)ReactJS 应用程序中使用。

我在我的项目根目录中创建了三个文件:.env、.env.development、.env.production

出于测试目的,我将这些变量放在每个 .env 文件中:

REACT_APP_TEST_KEY=1
TEST_KEY=1

在我的 app.js 文件的渲染函数中,我添加了这些调试行:

  console.log(`.env test key: ${process.env.REACT_APP_TEST_KEY}`);
  console.log(`.env test key: ${process.env.TEST_KEY}`);

全部保存后,我在命令行运行npm start

结果如下:

.env test key: undefined
.env test key: undefined

如您所见,我试图对是否应该使用前置 REACT_APP 的主题进行对冲。

我花了好几个小时查看关于这个主题的各种博客文章,以及关于这个主题的两个最受欢迎的问题,但我仍然觉得我没有答案,尤其是有些回答让人困惑它是否仅适用于节点而不适用于浏览器,以及 create-react-app documentation 部分内容未更新。

顺便说一句,该文档清楚地暗示这应该开箱即用,无需对 package.json 文件进行额外编辑。无论如何,我已将其包含在下面:

  "name": "ui",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "msal": "^1.3.0",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-router-dom": "^5.1.2",
    "react-scripts": "3.4.1",
    "react-stl-obj-viewer": "^1.2.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all",
      "ie 11"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version",
      "ie 11"
    ]
  },
  "devDependencies": {
    "node-sass": "^4.13.1"
  }

【问题讨论】:

  • 环境变量必须以 REACT_APP_YOURENVNAME 开头
  • 你的问题解决了吗?

标签: reactjs create-react-app dotenv


【解决方案1】:

您似乎可能在文档之后遗漏了一些要点,我已尝试在我的本地存储库和代码沙箱存储库中复制查看 env 变量的步骤。

他们似乎都在记录预期的环境变量。

有关详细信息,请参阅this codesandbox repo。如果您将代码托管在其他地方,请分享 repo 详细信息。

【讨论】:

    【解决方案2】:

    感谢 cmets 和建议。

    好吧,事实证明这很愚蠢。我将我的 .env 文件放在 /src 而不是项目根目录中 - 当项目中有超过 50 个文件并且 Visual Studio Code 中文件夹查看器上的缩进非常小时,这很容易完成。

    将文件移动到顶级文件夹(/src 上方)后,一切正常。

    (在此处插入 facepalm .gif)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 2020-05-06
      • 2019-08-17
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多