对于angular6
,全局变量process
未定义。
我使用docker-compose.yml
和Dockerfile
Docker化我的有角度的应用程序
我创建了.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'.
我的要求是:
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
-> environment.prod.ts
-> application code
更新
我发现了一个有关此问题的问题:https://github.com/angular/angular-cli/issues/4318
答案 0 :(得分:0)
您可以创建脚本并在使用 prebuild 之类的脚本执行该脚本之前执行该脚本。在该脚本中,您可以访问 process ,并且可以用您需要的内容替换environment.ts中的某些值。