【问题标题】:Vercel next.js environment variable not workingVercel next.js 环境变量不起作用
【发布时间】:2021-03-30 15:36:10
【问题描述】:
我在 Next.js 项目中使用谷歌地图,一切都在本地运行。谷歌地图密钥存储在 next.config.js 中,我通过 process.env.NEXT_PUBLIC_GOOGLEMAPS 在代码中访问它
当我将项目部署到 Vercel 时,出于安全原因,我没有包含 next.js.config。所以我在 Settings -> Environment Variables 下添加了密钥
但是,环境变量在生产环境中不起作用。当我控制台记录 process.env.NEXT_PUBLIC_GOOGLEMAPS 时,我得到未定义
什么可能导致此问题,我该如何解决?谢谢
【问题讨论】:
标签:
javascript
reactjs
google-maps
next.js
vercel
【解决方案1】:
这就是我的设置工作的方式...
- 我有一个用于本地开发密钥的
env.local 文件。 将.env.local.* 添加到 .gitignore 这个文件有我的键/值对,如下所示:
1 NEXT_PUBLIC_G_KEY=AFLkefjlkwblahblahblah
- 我有一个 next.config.js 文件,该文件在
env 空间中也包含此密钥:
env: { NEXT_PUBLIC_G_KEY: process.env.NEXT_PUBLIC_G_KEY }(process.env 根据docs 开箱即用)
- 我部署到 vercel,因此我使用密钥的实际值创建了一个秘密...:
$> yarn now secret add MyAppName_PRoD_G_KEY AFLkefjlkwblahblahblah
- 我在 vercel > 设置 > 环境变量中转到我的应用程序并在 UI 中创建一个新的,映射到我刚刚在命令行中创建的 secret。