Я развертываю проект узла, который использует next.js для openshift, где я устанавливаю переменную среды MY_ENV.Я добавил конфигурацию publicRuntimeConfig
в next.config.js для доступа к ней на стороне клиента.Он работает на моем локальном компьютере, но когда его контейнер и развернутый publicRuntimeConfig
равен undefined
.
Вот моя конфигурация из 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
не было определено в более высоких средах, поскольку оно не было частью развертываемого пакета.