介绍
如果您正在构建使用 API 的应用程序,您需要在开发期间使用 API 密钥测试环境,并在生产期间使用 API 密钥用于实时环境。在 Angular 中,您可以使用该environment.ts
文件创建环境变量。
注意:这篇文章适用于 Angular 2+ 应用。
在本教程中,您将学习如何在 Angular 中使用环境变量。
先决条件
如果你想跟随这篇文章,你需要:
- Node.js 的本地开发环境。遵循如何安装 Node.js 并创建本地开发环境。
本教程已通过 Node v16.2.0、npm
v7.15.1 和@angular/core
v12.0.3 验证。
检测环境
Angular CLI项目已经使用production
环境变量在生产环境中启用生产模式:
// ...
if (environment.production) {
enableProdMode();
}
Angular 还为我们提供了一个名为的实用函数isDevMode
,它可以检查应用程序是否在开发模式下运行:
import { Component, OnInit, isDevMode } from '@angular/core';
@Component({ ... })
export class AppComponent implements OnInit {
ngOnInit() {
if (isDevMode()) {
console.log('Development!');
} else {
console.log('Production!');
}
}
}
此示例代码将'Development!
在开发模式下注销消息并Production!
在生产模式下注销消息。
添加开发和生产变量
您还会注意到,默认情况下,/src/environment
文件夹中有一个用于开发的环境文件和一个用于生产的环境文件。
假设我们要使用不同的密钥,具体取决于我们是处于开发模式还是生产模式:
对于 中的开发设置environment.ts
:
export const environment = {
production: false,
apiKey: 'devKey'
};
对于 中的生产设置environment.prod.ts
:
export const environment = {
production: true,
apiKey: 'prodKey'
};
在我们的组件中,为了访问变量,我们要做的就是:
import { Component } from '@angular/core';
import { environment } from '../environments/environment';
Angular 负责交换正确的环境文件。
运行开发模式:
- ng serve
该apiKey
变量解决devKey
。
运行生产模式:
- ng serve --configuration=production
注意:以前,--prod
建议使用该选项,但对于--configuration=production
.
该apiKey
变量解决prodKey
。
添加暂存变量
通过向文件中的configurations
字段添加新条目,在 Angular CLI 项目中添加新环境angular.json
。
注意:以前,此配置是在.angular-cli.json
.
让我们根据生产使用的配置添加一个临时环境:
{
// ...
"projects": {
"angular-environment-example": {
// ...
"prefix": "app",
"build": {
// ...
"configurations": {
"staging": {
// ...
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.stage.ts"
}
],
// ...
},
// ...
},
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"configurations": {
"staging": {
"browserTarget": "angular-environment-example:build:staging"
},
}
},
}
}
}
}
现在我们可以添加一个临时环境文件:
export const environment = {
production: true,
apiKey: 'stagingKey'
};
运行开发模式:
- ng serve --configuration=staging
注意:以前--env=staging
推荐使用该选项,但现在已替换为--configuration=staging
.
该apiKey
变量将解析为stagingKey
。
结论
在本教程中,您学习了如何在 Angular 中使用环境变量。
如果您想了解有关 Angular 的更多信息,请查看我们的 Angular 主题页面以获取练习和编程项目。