首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义next.js环境变量(Next.js 10.0.5)

未定义next.js环境变量(Next.js 10.0.5)
EN

Stack Overflow用户
提问于 2021-02-10 20:57:54
回答 7查看 12.7K关注 0票数 7

我正在用Next.js编码一个网站,我试图添加谷歌标签管理器。

我遵循了Next.js Github示例的教程,但由于某些原因,我无法访问我的环境变量。

它说我的变量是未定义的。

我在项目文件夹中(与components、node_modules、pages等处于同一级别)创建了一个.env.local文件。

在这个文件中,我创建了一个这样的变量(测试目的):

代码语言:javascript
复制
NEXT_PUBLIC_DB_HOST=localhost

在我的索引页面上,我尝试了以下代码:

代码语言:javascript
复制
console.log("test ", process.env.NEXT_PUBLIC_DB_HOST);

但在我的控制台中,我得到了一个“测试未定义”。

我尝试将变量放入.env文件中,但没有成功。

我做错了什么?

EN

回答 7

Stack Overflow用户

发布于 2021-06-30 14:12:13

这个环境只能在服务器端工作。要在客户端访问此环境,您需要在next.config.js中声明

这样:

代码语言:javascript
复制
module.exports = {
  reactStrictMode: true,
  env: {
    BASE_URL: process.env.BASE_URL,
  }
}
票数 22
EN

Stack Overflow用户

发布于 2021-10-27 05:32:01

  1. 创建.env(所有环境).env.development(开发环境)和.env.production(生产环境)。

  1. 将前缀NEXT_PUBLIC添加到所有环境变量。

NEXT_PUBLIC_API_URL=http://localhost:3000/

  1. 与prefix process.env

一起使用

process.env.NEXT_PUBLIC_API_URL

  1. 停止服务器并重新启动它:

npm运行开发

  1. 我希望它能工作。此解决方案适用于最新版本的nextJs (9以上)
票数 11
EN

Stack Overflow用户

发布于 2021-02-17 03:04:58

重新启动服务器对我来说很有效。

编辑并保存.env.local

  • Stop服务器并重新启动它,npm run dev

  • You应该会在下一行得到如下输出:

代码语言:javascript
复制
> klout@0.1.0 dev
> next dev

Loaded env from [path]/.env.local
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66137368

复制
相关文章

相似问题

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