如何将.env文件中的变量传递到angular6 environment.ts文件

如何将.env文件中的变量传递到angular6 environment.ts文件,angular,docker,docker-compose,angular-cli,angular-cli-v6,Angular,Docker,Docker Compose,Angular Cli,Angular Cli V6,使用angular6,全局变量process未定义 我使用docker compose.yml和Dockerfile 我创建.env文件来存储docker compose.yml使用的秘密变量 但是,如果我在应用程序代码中获得存储在.env文件中的变量,如下所示: process.env.GITHUB\u访问\u令牌 将抛出一个错误 ERROR in src/app/app.module.ts(41,58): error TS2304: Cannot find name 'process'. s

使用
angular6
,全局变量
process
未定义

我使用
docker compose.yml
Dockerfile

我创建
.env
文件来存储docker compose.yml使用的秘密变量

但是,如果我在应用程序代码中获得存储在
.env
文件中的变量,如下所示:

process.env.GITHUB\u访问\u令牌

将抛出一个错误

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'.
我的要求是:

  • 使用docker compose up在docker容器中运行应用程序
  • 在应用程序代码中,获取在
    .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
    ->
    环境.prod.ts
    ->
    应用程序代码

    更新


    我发现了一个关于这个问题的问题:

    您可以创建一个脚本,并在构建之前使用类似于预构建的东西执行它。在该脚本中,您可以访问process,并且可以使用所需内容替换environment.ts中的某些值。

    您是否尝试过像
    /.env
    ?并且您的构建过程在部署到docker上之前,对吗?您可以尝试在运行时从assets文件夹中的json文件检索设置(而不是直接使用environment.ts). 该json配置文件将包含占位符,当您启动CMD进程时,占位符将被en变量替换