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

NextJS+Heroku:未加载环境变量

董和泽
2023-03-14

这是我的next.config.js文件

const { parsed: localEnv } = require('dotenv').config()
const webpack = require('webpack')
const Dotenv = require('dotenv-webpack')
const path = require('path')

module.exports = {
    //target: 'serverless',
    webpack(config) {
        config.plugins.push(new webpack.EnvironmentPlugin(localEnv))
        config.node = {fs: "empty"};
        config.plugins = config.plugins || []

        config.plugins = [
            ...config.plugins,

            // Read the .env file
            new Dotenv({
                path: path.join(__dirname, '.env'),
                systemvars: true
            })
        ]

        return config
    },
    publicRuntimeConfig: {
        ADDRESS: process.env.ADDRESS,
        API_TOKEN: process.env.API_TOKEN,
        INFURA_API_KEY: process.env.INFURA_API_KEY
    }
}

共有1个答案

唐照
2023-03-14

在next.js github页面上得到了答案:https://github.com/zeit/next.js/issues/6533

我试过几种不同的方法来解决这件事。

使用dotenv-webpack设置环境变量对我不起作用。起作用的是在next.config.js中设置env,如下所示:

const { parsed: localEnv } = require('dotenv').config()
const webpack = require('webpack');

const path = require('path')

module.exports = {
    webpack(config) {
        config.plugins.push(new webpack.EnvironmentPlugin(localEnv))
        config.node = {fs: "empty"};
        config.plugins = config.plugins || []

        config.plugins = [
            ...config.plugins,
        ]

        return config
    },
    env: {
        ADDRESS: '0xd6F75293ec795',
        API_TOKEN: 'YUBKzlbA2eFmNbkzk',
        INFURA_API_KEY: '97eb10aac61799f9e865',
        MNEMONIC: 'my not so secret for testing password',
    }
}
 类似资料:
  • 问题内容: 我在 根文件夹 文件中有.env 文件 并将文件放在文件夹中。文件的第一行是 我还尝试了以下操作: ; ; 但是,当我从 命令提示符* 运行文件时,不会加载我的env变量 * 如果我使用 Visual Studio 并按 F5 ,它将加载! 我不确定我在做什么错,我想念什么。任何建议都非常感谢。谢谢。 问题答案: 使用如何? 您的问题似乎是执行路径。

  • 从2.7.3版本开始,Dubbo会自动从约定key中读取配置,并将配置以Key-Value的形式写入到URL中。 支持的key有以下两个: dubbo.labels,指定一些列配置到URL中的键值对,通常通过JVM -D或系统环境变量指定。 增加以下配置: # JVM -Ddubbo.labels = "tag1=value1; tag2=value2" # 环境变量 DUBBO_LAB

  • 我在我的机器上导出了一些简单的数据库CRED作为ENV变量。 我试图将这些动态加载到spring boot的配置文件中,但没有成功。我开始相信这是因为应用程序在TomCat容器中运行,因此与机器环境变量隔离。 但是,它仍然被视为的纯文本。Spring Boot是否具有读取系统环境变量的能力?

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

  • laravel 在启动时,会加载项目的 env 文件,本文将会详细介绍 env 文件的使用与源码的分析。 ENV 文件的使用 多环境 ENV 文件的设置 一、在项目写多个 ENV 文件,例如三个 env 文件: .env.development、 .env.staging、 .env.production, 这三个文件中分别针对不同环境为某些变量配置了不同的值, 二、配置 APP_ENV 环境变量

  • 问题内容: 我正在做一个简单的管道: 建立- >分期->生产 我需要分期和生产不同的环境变量,所以我试图 源 变量。 但返回 未找到 路径是正确的,因为通过ssh登录时我运行相同的命令,并且工作正常。 这是管道的想法: 我该怎么办? 我正在考虑不使用管道(但是我将无法使用我的Jenkinsfile)。 或使用EnvInject插件为舞台制作和制作不同的工作(但我失去了舞台视图) 或者用env制作(