【问题标题】:Next JS publicRuntimeConfig not being set at runtime下一个 JS publicRuntimeConfig 没有在运行时设置
【发布时间】:2020-09-17 16:34:16
【问题描述】:

我有一个带有以下内容的 next.config.js 文件:

module.exports = {
serverRuntimeConfig: {},
publicRuntimeConfig: {
    cmsBase: process.env.CMS_BASE || 'defaultValue',
},
};

我有两个 npm 脚本,用于构建和运行,如下所示:

"build": "cross-env CMS_BASE=build next build",
"start": "cross-env-shell CMS_BASE=start next start"

我正在我的应用程序中这样读取值:

const {publicRuntimeConfig} = getConfig();
const cmsBase = publicRuntimeConfig.cmsBase;

但是 cmsBase 的值总是'build'。我根本无法在运行时设置这个 var。如果我从构建脚本中删除 CMS_BASE=build,那么该值会从 next.config.js 文件中以“defaultValue”的形式出现。我在这里错过了什么?

【问题讨论】:

    标签: next.js


    【解决方案1】:

    因此,如果其他人遇到此问题,似乎在 publicRuntimeConfig 中传递默认值会覆盖您在运行时设置的任何内容,就像您在构建时设置的一样。

    因此,如果您希望运行时变量起作用,请不要在定义中创建默认值,稍后在应用程序中进行。并且不要使用同名的构建时变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-23
      • 2018-02-04
      • 1970-01-01
      • 2020-07-21
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 2018-09-25
      相关资源
      最近更新 更多