Как работать с process.env с приложением build node.js, работающим в NGINX - PullRequest
0 голосов
/ 14 апреля 2019

Я настраиваю приложение Dockerized Node, MongoDB, Vue, Express и сталкиваюсь с проблемой после сборки моего приложения.

Для клиентской части мне нужно получить API-URL из среды приложения, используя следующий файл Api.js

    import axios from 'axios'

    export default() => {
      return axios.create({
        baseURL: process.env.API_URL
      })

Мой docker-compose (только в зависимости):

front:
  image: nginx
  environment:
    - NODE_ENV = 'production'
    - API_URL=[hidden]
    - PORT=80

api:
  build: ./etc/server/.
  environment:
    - PORT=80
    - DATABASE_URL=server-database:27017

Этот код отлично работает в среде разработчика webpack, но не после сборки приложения и помещения его в другой контейнер NGINX. Я также попытался изменить env-переменные из контейнеров NGINX, но приложение все еще не может видеть никакие process.env.

Я также попробовал плагин dotenv, но также пустой процесс .env

Есть здесь идея?

Спасибо

1 Ответ

0 голосов
/ 15 апреля 2019

В итоге я добавил опцию webpack.plugins в мою базовую конфигурацию webpack. Это помогло найти переменные среды.

plugins: [
  new webpack.DefinePlugin({
    'process.env': {
      API_URL: JSON.stringify(process.env.API_URL),
    },
  }),
],
...