首页 > 解决方案 > 如何设置 heroku 环境变量出现在 NextJS 应用程序中?

问题描述

对我来说有点陌生,但我试图在我的页面上设置一个横幅,上面写着“当前环境:审查”“当前环境:暂存”,具体取决于我在 Heroku 中的部署过程的哪个阶段。

目前,我在 Heroku 上有这样的环境变量:CURRENT_ENV: REVIEW. 但是,当我尝试使用以下逻辑访问变量时,它们在我部署的应用程序中显示为未定义。我很好奇正确设置这些变量的正确方法是什么,以便我的应用程序能够检测它是否处于审查或暂存状态。

_app.ts

  const getCurrentEnv = (): string => {
    console.log(process.env.NEXT_PUBLIC_CURRENT_ENV, process.env.CURRENT_ENV);
    // while deployed on heroku logs: PRODUCTION, undefined

    return process.env.NEXT_PUBLIC_CURRENT_ENV === 'DEVELOPMENT'
      ? process.env.NEXT_PUBLIC_CURRENT_ENV
      : process.env.CURRENT_ENV;
  };

.env.production

NEXT_PUBLIC_CURRENT_ENV="PRODUCTION"

.env.development

NEXT_PUBLIC_CURRENT_ENV="DEVELOPMENT"

标签: javascriptreactjsherokunext.js

解决方案


推荐阅读