在Next.js / NOW上本地访问SSR和API路由的机密

时间:2020-02-09 19:03:27

标签: node.js reactjs environment-variables next.js vercel

尝试通过Next.js / NOW托管的站点在本地使用机密。

这些是我只希望对SSR页和API函数(而不是浏览器呈现的组件)可用的秘密。

Zeit's documentation相反,只有将秘密存储在.env.build中,秘密才会起作用。如果它们存储在.env中,它们将显示为undefined

换句话说,这可行:

.env.build

SECRET_KEY="2039usdljkhfklsjdfjaops9dfi09"

now.json

{
  "build": {
    "env": {
      "SECRET_KEY": "@secret-key"
    }
  }
}

这不是:

.env

SECRET_KEY="2039usdljkhfklsjdfjaops9dfi09"

now.json

{
  "env": {
    "SECRET_KEY": "@secret-key"
  }
}

我想念什么吗?

我担心的是,放入build的秘密将被“内置”到该站点中,即公开可用。我误会“ build”这个词吗?

1 个答案:

答案 0 :(得分:0)

我的问题已解决,方法是登录zeit.co,转到应用程序的项目设置,然后为Other选择Framework Preset。以前已将其设置为Next

进行更改后,我运行process.env时,本地环境变量开始显示在now dev中。

这似乎是now 17.x的古怪之处。降级为now 16.7.3也解决了该问题。希望很快能解决!