如何将.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'.
我的要求是:
.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变量替换