prod / staging中始终未定义next.config.js中的publicRuntimeConfig

JavaScript React.js

Stafan

2020-03-23

我正在部署一个节点项目,该项目使用next.js进行openshift设置环境变量MY_ENV。我已将publicRuntimeConfig配置添加到next.config.js以访问它的客户端。它工作在我的地方,但是当它的集装箱化和部署publicRuntimeConfigundefined

这是我来自next.config.js的配置

module.exports = {
  publicRuntimeConfig: { // Will be available on both server and client
      isProd: process.env.MY_ENV ? process.env.MY_ENV.includes('prod'): false,
      isStaging: process.env.MY_ENV ? process.env.MY_ENV.includes('staging') : false
    },
  webpack: (config, { dev }) => {
    const eslintRule = {
      test: /\.js$/,
      enforce: 'pre',
      exclude: /node_modules/,
      loader: 'eslint-loader',
      options: {
        emitWarning: dev,
      },
    };
    const cssRule = {
      test: /\.css$/,
      use: {
        loader: 'css-loader',
        options: {
          sourceMap: false,
          minimize: true,
        },
      },
    };

    config.node = {
      fs: 'empty'
    };

    config.module.rules.push(eslintRule);
    config.module.rules.push(cssRule);
    return config;
  }
};

这就是我试图在页面上获取publicRuntimeConfig的方式。

import getConfig from 'next/config';
const { publicRuntimeConfig } = getConfig();

console.log(publicRuntimeConfig.isProd); //publicRuntimeConfig is undefined here. 

任何帮助表示赞赏。

更新/修复

publicRuntimeConfig 在更高环境中未定义,因为它不是要部署的软件包的一部分。

第3128篇《prod / staging中始终未定义next.config.js中的publicRuntimeConfig》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

0个回答

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android