Webpacker не заменяет переменные "process.env", когда указана среда - PullRequest
1 голос
/ 20 апреля 2020

Я полагаюсь на Webpacker для преобразования моих process.env переменных в фактические значения при сборке. Когда я запускаю bin/rails webpacker:compile, чтобы сделать это, все работает, как ожидалось. Примерно так:

initialize({apiKey:process.env.MY_API_KEY})

... правильно превращается во что-то вроде этого:

initialize({apiKey:"some-api-key-string"})

Однако, когда запускается та же команда с префиксом в указанной c среде (ЛЮБАЯ окружающая среда), замена не работает.

Команда: RAILS_ENV=test bin/rails webpacker:compile

И у меня осталось что-то вроде этого:

initialize({apiKey:t.env.MY_API_KEY})

Мой webpacker.yaml файл содержит каждое заданное мной окружение. В этом конкретном примере он возвращается к настройкам по умолчанию:

test:
  <<: *default

Есть ли потенциально очевидная вещь, которую я здесь упускаю? Я также проверил это, запустив bin/rails assets:precompile. Если указано RAIS_ENV, строки process.env не заменяются. Когда env выключен, он работает как положено.

Заранее спасибо!

1 Ответ

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

Решено!

Как оказалось, это было из-за неправильного понимания того, как были загружены .env файлы. У меня было значение, определенное в моем .env файле, но не в моем .env.test файле. Я предполагал, что он извлечет все значения из моего .env и перезапишет их, если значения также существуют в моем .env.test. Но, по-видимому, загрузка файла из файла .env вообще не беспокоила, поэтому я видел эту проблему только при создании ресурсов с определенным набором RAILS_ENV.

...