Реагируйте на переменные среды, работающие в разработке, а не в развертывании, для Netlify - PullRequest
1 голос
/ 02 апреля 2020

На моем P C все работает нормально, но после развертывания в netlify моя переменная окружения не определена. Это то, что у меня в штате.

let apikey;

if(process.env.NODE_ENV !== 'production') {
    apikey = process.env.REACT_APP_APIKEY;
    console.log(apikey);
} else {
    apikey = process.env.APIKEY;
    console.log(apikey);
}

Настройки Netlify

Тем не менее, все еще становится неопределенным:)

Console.log сообщает мне, что переменная не определена

1 Ответ

0 голосов
/ 02 апреля 2020

В netlify вы не сможете получить доступ к переменным окружения для клиента, если вы не встроили их в свои скрипты во время сборки. Вот почему вы не должны хранить секретные ключи в сборках ваших клиентских скриптов.

На Netlify нет серверной стороны, кроме случаев использования функций. Если вы используете функции Netlify (лямбда-функции), то нет проблем с доступом к настройке переменных среды через интерфейс администратора.

Только среда сборки знает и может использовать переменные среды в большинстве случаев, так как они устанавливаются в оболочке во время сборки, но ваш код не обслуживается из среды сборки - он обслуживается без изменений после сборки.

Сохраните ваш REACT_APP_APIKEY в переменных среды сборки Netlify и соберите .env с использованием сценария перед выполнением команды построения.

scripts / create-env. js

const fs = require('fs')
fs.writeFileSync('./.env',`REACT_APP_APIKEY=${process.env.REACT_APP_APIKEY}`)

Запустите сценарий как часть вашей сборки

node ./scripts/create-env.js 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...