当前位置: 首页 > 知识库问答 >
问题:

Vercel NextJS应用环境变量不工作[重复]

松和泰
2023-03-14

来自Ruby on Rails,我发现在NextJS上很难理解环境变量的概念,特别是在Vercell平台上。我遵循了NextJS留档,它建议Vercell留档在项目设置中设置环境变量,即使是开发环境。所以我做了,并用vercel env拉他们。env.local。但是当我运行开发服务器时,process.env变量总是未定义的。到目前为止,我发现了很多关于这方面的问题,但运气不佳。

我使用的示例代码:

export function getEncodedClientIdAndSecret(): string {
    const clientId = process.env.CLIENT_ID;
    const clientSecret = process.env.CLIENT_SECRET;

    if (!clientId || !clientSecret) {
        throw new Error('Missing client ID or client secret');
    }

    const encodedString = Buffer.from(`${clientId}:${clientSecret}`).toString('base64');
    return `Basic ${encodedString}`;
}

。环境。本地文件:

# Created by Vercel CLI
REDIRECT_URI=localhost:3000/api/callback
BASE_URL=localhost:3000
FIREBASE_DATABASE_URL=projectid.firebaseio.com
FIREBASE_CLIENT_EMAIL=dfsdfo@projectid.iam.gserviceaccount.com
FIREBASE_PRIVATE_KEY_B64=longenccryptedprivatekey
FIREBASE_PROJECT_ID=projectid
CLIENT_SECRET=secreiclient
CLIENT_ID=clientid

我不是JavaScript的粉丝。这真是让人摸不着头脑。

共有1个答案

杨成礼
2023-03-14

过了一段时间,我又遇到了这个问题。

但这一次,文档中的NEXT_PUBLIC_前缀工作顺利。我不知道为什么在我尝试这个解决方案的时候没有。

这是的工作版本。env文件:

NEXT_PUBLIC_REDIRECT_URI=<Callback URI from Spotify>
NEXT_PUBLIC_BASE_URL=<Base URL of the project>
NEXT_PUBLIC_CLIENT_ID=<Spotify app client ID>
CLIENT_SECRET=<Spotify app client secret key>
FIREBASE_PROJECT_ID=<Firebase project ID>
FIREBASE_PRIVATE_KEY_B64=<Base64-encoded string of Firebase private key>
FIREBASE_CLIENT_EMAIL=<Firebase client email>
FIREBASE_DATABASE_URL=<Firebase database URL>
WARMUP_KEY=<Secret to trigger Firebase database warmup>

这是我正在做的公关。

 类似资料:
  • 我正在尝试为java设置一个PATH环境变量。当我按照下面的方式设置变量值时,在cmd中输入“java”时,它可以很好地工作 但是对于下面的错误,“java”不被识别为内部或外部命令, 我用的是windows 8。你知道为什么上面的变量不起作用吗?

  • 我试图运行一个读取环境变量的应用程序,该环境变量包含大约22K个字符的JSON。项目设置告诉我使用来正确配置它,但是当我使用windows时,这些命令不起作用。 我尝试使用GUI环境变量将文件的内容复制到变量中,但是它的输入会将值截断到一定的限制,这个限制甚至不到文件的一半。在此之后,我尝试使用Powershell和以下命令设置变量: 然后用以下命令保存结果:

  • 所以我正确地设置了我的环境变量和它们的值。 如何设置环境变量,以便在命令提示符上输入它们的名称就足以运行它们的值?

  • 我对Environment env有问题。getproperty、env无法找到本地属性,但它可以找到系统属性。我不知道这么多,我需要解决它。请帮帮我。附上我的代码及其配置。 控制器。xml: Paremeters.properties: 控制器: 在此处输入图像描述

  • 我正在使用多根工作区功能查看我的c项目中的源文件以及几个外部库。我正在尝试使用cpptools扩展来实现intellisense和其他功能。我想在工作区级别相对于。code-workspace文件设置默认包含路径。使用${workspaceFolder}解析为包含所查看文件的文件夹的路径。是否存在始终解析代码工作区文件路径的环境变量?还是我可以设置一个配置变量,然后使用${config:varia

  • 我试图用exec()运行PHP中的几个命令,它似乎只适用于我的windows环境变量中定义的一些命令,但不适用于所有命令。 在命令提示符中,我可以从任何路径(C:\或E:\无论) 它们都为每个指定的程序返回正确的版本,这意味着环境变量配置良好。 但是在PHP中我只能运行一些命令,其余的都失败了: 那么,我是不是遗漏了什么?。 编辑:exec()工作正常,它适用于我的一些环境变量,如pear,cmd