Как передать переменные в файле .env в файл angular6 environment.ts

С angular6 глобальная переменная process не определена.

Я докерлизую свое угловое приложение, используя docker-compose.yml и Dockerfile

Я создаю файл .env для хранения моих секретных переменных, используемых docker-compose.yml

Но если я получу переменные, хранящиеся в файле .env, в коде приложения следующим образом:

process.env.GITHUB_ACCESS_TOKEN

Будет выброшена ошибка

ERROR in src/app/app.module.ts(41,58): error TS2304: Cannot find name 'process'.
src/app/app.module.ts(53,12): error TS2304: Cannot find name 'process'.

Мои требования:

  1. запустить приложение в контейнере докеров, используя docker-compose up
  2. В коде приложения получите переменные среды, которые определены в файле .env.

Вот мой docker-compose.yml:

version: '2.1'

services:
  angular-apollo-starter:
    image: angular-apollo-starter
    build: .
    environment:
      NODE_ENV: production
    env_file: .env
    ports:
      - 8080:80

Я думаю, что рабочий процесс передачи переменных среды должен быть таким:

.env -> environment.prod.ts -> application code

обновить

Я нашел проблему с этой проблемой: https://github.com/angular/angular-cli/issues/4318


person slideshowp2    schedule 16.07.2018    source источник
comment
вы пробовали как ./.env ?   -  person chintan thakar    schedule 16.07.2018
comment
И ваш процесс сборки происходит перед развертыванием в докере, верно?   -  person David    schedule 16.07.2018
comment
Вы можете попробовать получить настройки во время выполнения из файла json, расположенного в папке ресурсов (вместо прямого использования environment.ts). Этот файл конфигурации json будет содержать заполнители, которые будут заменены переменными en при запуске процесса CMD.   -  person David    schedule 16.07.2018


Ответы (1)


Вы можете создать сценарий и выполнить его перед сборкой с помощью чего-то вроде prebuild. В этом скрипте у вас есть доступ к process, и вы можете заменить некоторые значения в environment.ts на то, что вам нужно.

person Adrian Fâciu    schedule 16.07.2018