Они не "переведены" во время сборки, это то, что происходит с вами.В среде узла, когда вы запрашиваете process.env
, он отображает все переменные среды, доступные в системе, это правда.Но веб-приложение не имеет доступа к process.env
, когда оно выполняется.Вам нужен способ их перевода во время сборки.
Для этого вам нужно использовать DefinePlugin
.Он переводит что-либо во время сборки и записывает волшебную строку, где была эта другая вещь.
Используя собственный пример:
module.exports = {
NODE_ENV: '"production"',
BACKEND_URL: JSON.stringify(process.env.BACKEND_URL)
}
Если вы сделаете это во время сборки, без DefinePlugin, веб-пакет выигралне знаю, что с ним делать, и это будет простая строка.
Если вы используете DefinePlugin:
new webpack.DefinePlugin({
"process.env.BACKEND_URL": JSON.stringify(process.env.BACKEND_URL)
});
Делая это, вы разрешаете веб-пакету переводить этово время сборки.