在Angular 5环境中使用process.env

时间:2018-03-26 16:37:41

标签: angular angular5 devops ng-build

我尝试使用标准ng build --prod命令构建Angular 5应用程序,并且我想将environment.prod.ts中的基本API-Url设置为依赖于我的process.env变量的值

这是我的档案:

export const environment = {
    production: true,
    apiUrl: `${process.env.BASE_URL}` || 'http://localhost:8070/',
};

但是当我尝试构建应用程序时,会发生以下错误:

ERROR in src/environments/environment.ts(7,16): error TS2304: Cannot find name 'process'.

如何在构建应用程序时根据env变量设置API-Url?

1 个答案:

答案 0 :(得分:11)

在Angular代码的编译时,您将无法访问process.env

process.env可供Node个应用程序使用,而Angular应用程序则不然。

您有几种选择:

1)在构建管道中创建某种任务,以便在真正需要动态的情况下使用正确的值更新环境文件。

2)只需硬编码并制作几个环境文件以匹配您的每个环境。您可以在angular-cli.json中指定环境。

选项编号2听起来可能适合您。在这种情况下,你想把它放在你的angular-cli.json:

"environments": {
    "dev": "path/to/dev/env",
    "prod": "path/to/prod/env"
}

使用ng build --env=prod构建您的应用。

以下是更深入的信息: https://alligator.io/angular/environment-variables/