【问题标题】:process.env.NODE_ENV === "developement" even in productionprocess.env.NODE_ENV === "开发" 即使在生产中
【发布时间】:2020-04-19 10:06:26
【问题描述】:

我想部署一个 React 应用(使用 Create React App 制作)+ 一个带有 Heroku 的 Node 服务器,

我做到了,但我的应用无法从服务器获取数据,

在生产中,我的 process.env.NODE_ENV 等于“开发”,这会导致我的代码中有很多错误的东西,

您知道什么可以让 process.env.NODE_ENV 始终处于“开发”状态吗?在构建时,这个环境变量应该切换到“生产”,不是吗?

【问题讨论】:

标签: reactjs environment-variables create-react-app


【解决方案1】:

您可以使用env-cmd 控制您的环境。它们让您在本地开发、测试、暂存、UAT 或生产之间轻松切换。

您可以参考这个article。这对我很有帮助

【讨论】:

  • 感谢您的资源,我阅读了这篇文章,但如果我没记错的话,我仍然不明白为什么我的 process.env.NODE_ENV 在生产中处于“开发”状态:'(
  • @Versifiction 你试过npm run build 或创建优化生产包的命令?
  • 是的,每次部署时脚本都会完成,但 env 变量仍在开发中,但别担心,我是用另一个解决方案完成的
【解决方案2】:

您的环境变量可以按环境设置,在本例中在 Heroku 中:https://devcenter.heroku.com/articles/config-vars#using-the-heroku-dashboard

如果您想确保build 始终以相同的NODE_ENV 运行,您可以按照@seunggabi 的回答。在这种情况下,我还会使用cross-env 使其跨平台工作。可以在heroku-postbuild 任务上强制执行每个进程变量(在&& 之后)。

【讨论】:

  • 嗨,我的包 json 中也有脚本 heroku postbuild(“heroku-postbuild”:“npm install && npm run build”),但看起来构建没有完成,因为我的 node_env变量仍在开发中...
  • 我的建议是尝试将heroku-postbuild 用作npm install && cross-env NODE_ENV=production npm run build(在将cross-env 添加到开发依赖项之后)
【解决方案3】:

你的package.json添加这个。

  "scripts": {
    "start": "export NODE_ENV=development; {your start code}",

【讨论】:

    猜你喜欢
    • 2020-04-23
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    相关资源
    最近更新 更多