首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的React应用程序使用的是来自.env文件的值,而不是.env.local文件

我的React应用程序使用的是来自.env文件的值,而不是.env.local文件
EN

Stack Overflow用户
提问于 2021-03-04 01:20:40
回答 1查看 4.4K关注 0票数 6

dotenv模块应该是将我的.env.local文件优先于.env文件,但它不是。当我在两个文件中设置REACT_APP_API_BASE时,应用程序总是使用.env中的值。只有当我删除.env.local中的匹配定义时,它才会使用.env中的值。

.env

代码语言:javascript
复制
REACT_APP_API_BASE = 'https://api-staging.mysite.com/api'

.env.local

代码语言:javascript
复制
REACT_APP_API_BASE = 'https://api-qa.mysite.com/api'

应用程序正在对https://api-staging.mysite.com/api/endpoint.进行API调用

我做错了什么?

作为参考,我不是直接运行react-scripts,而是使用CRACO。

package.json

代码语言:javascript
复制
  "scripts": {
    "start": "craco start",
    "build": "craco build"
  },
  "dependencies": {
    "@craco/craco": "^6.0.0",
    "@material-ui/core": "^4.11.2",
    "@material-ui/icons": "^4.11.2",
    "@material-ui/lab": "^4.0.0-alpha.57",
    "@sentry/react": "^6.2.2",
    "@sentry/tracing": "^6.2.2",
    "@sentry/webpack-plugin": "^1.14.0",
    "@stripe/react-stripe-js": "^1.3.0",
    "@stripe/stripe-js": "^1.13.0",
    "mixpanel-browser": "^2.41.0",
    "react": "^16.6.0",
    "react-dom": "^16.0.0",
    "react-gtm-module": "^2.0.11",
    "react-intl": "^5.10.14",
    "react-router-dom": "^5.2.0",
    "react-scripts": "4.0.1",
    "typescript": "^4.1.3",
    "universal-cookie": "^4.0.4",
    "web-vitals": "^0.2.4"
  },
  "devDependencies": {
    "@formatjs/cli": "^3.0.1",
    "@storybook/addon-a11y": "^6.1.20",
    "@storybook/addon-actions": "^6.1.20",
    "@storybook/addon-essentials": "^6.1.20",
    "@storybook/addon-links": "^6.1.20",
    "@storybook/components": "^6.1.20",
    "@storybook/node-logger": "^6.1.20",
    "@storybook/preset-create-react-app": "^3.1.5",
    "@storybook/react": "^6.1.18",
    "@testing-library/jest-dom": "^5.11.9",
    "@testing-library/react": "^11.2.5",
    "@testing-library/user-event": "^12.8.3",
    "@types/jest": "^26.0.20",
    "@types/mixpanel-browser": "^2.35.6",
    "@types/node": "^14.14.20",
    "@types/react": "^17.0.0",
    "@types/react-dom": "^17.0.0",
    "@types/react-gtm-module": "^2.0.0",
    "@types/react-router-dom": "^5.1.7",
    "babel-plugin-formatjs": "^9.0.1",
    "babel-plugin-import": "^1.13.3",
    "dotenv-webpack": "^1.8.0",
    "eslint-plugin-sonarjs": "^0.5.0",
    "hint": "^6.1.1",
    "jest-chain": "^1.1.5",
    "react-test-renderer": "^17.0.1"
  },
  "babel": {
    "presets": [
      "react-app"
    ],
    "plugins": [
      [
        "formatjs",
        {
          "idInterpolationPattern": "[sha512:contenthash:base64:6]",
          "ast": true
        }
      ]
    ]
  },
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-18 09:44:37

在悬赏五分钟后,我终于弄明白了.

我的一个文件的顶部有require('dotenv').config();。显然,这是用主.env文件中的任何内容覆盖CRA发现的配置。一旦从我的代码中删除了这一行,一切就都正常了。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66467244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档