首页 > web前端 > js教程 > 正文

使用environment.ts跨环境构建和服务Angular应用程序(Angular)

王林
发布: 2024-09-03 21:00:53
原创
672 人浏览过

作为 Angular 开发人员,将应用程序部署到不同的环境 - 开发 (dev)、用户验收测试 (UAT) 和生产 - 是很常见的情况。然而,不断更改代码来适应这些环境细节可能会很乏味、容易出错,并且会降低效率。

本文概述了利用强大的environment.ts 功能,在各种环境中构建和提供 Angular 应用程序的分步方法,无需修改代码库。

设想:

想象一个 Angular 应用程序,其中前端与托管在不同环境中的后端 API 进行交互。让我们探索如何创建新环境、配置它们以及根据目标环境提供/构建您的应用程序。

设置环境:

生成环境文件:

在终端中运行以下命令:

ng 生成环境

这会在 src 目录中创建一个名为environments的文件夹,其中包含初始environment.ts文件。默认情况下,此文件用作您的开发环境配置。

Building and Serving Angular Applications Across Environments with environment.ts (Angular )

定义环境变量:

打开environment.ts并定义您的开发环境变量:

export const environment = {
  production: false, //Set to False for development
  apiUrl: 'http://my-dev-url' //Replace with your development URL
};
登录后复制

创建特定于环境的文件:

对于 UAT 和生产环境,创建单独的文件:

environment.test.ts(用于 UAT)
environment.prod.ts(用于生产)

将您各自的 UAT 和生产 API URL 添加到这些文件中:

// environment.test.ts (UAT)
export const environment = {
  production: false,
  apiUrl: 'http://my-uat-url'
};

// environment.prod.ts (Production)
export const environment = {
  production: true,
  apiUrl: 'http://my-prod-url'
};
登录后复制

在代码中使用环境:

要在代码中使用 API URL:

导入环境.ts:

从'./environments/environment'导入{环境};

访问API URL:

在您的服务或组件中,注入环境变量:

export class MyService {
  constructor() {}
  apiUrl = environment.apiUrl;
}
登录后复制

为特定于环境的构建配置 angular.json:

目标配置:

打开 angular.json 并找到“build”下的“configurations”部分。这定义了不同环境的构建配置。

"configurations": {
  "production": {
    // Rest of the configs
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.prod.ts"
      }
    ]
  },

"staging": {
    // Rest of the configs
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.test.ts"
      }
    ]
  },
  // ... other configurations
},

"defaultConfiguration": "production"

登录后复制

这指示 Angular CLI 在生产构建期间将默认的environment.ts替换为environment.prod.ts,并在UAT构建期间将默认的environment.test.ts替换为environment.test.ts。

为了在多个环境中提供应用程序,您可以在 angular.json 中添加服务配置,如下所示:

"serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": { … },
    "configurations": {
      "development": {
        // Use the `development` configuration of the `build` target.
        "buildTarget": "my-app:build:development"
      },
      "staging": {
        // Use the `development` configuration of the `build` target.
        "buildTarget": "my-app:build:staging"
      },
      "production": {
        // Use the `production` configuration of the `build` target.
        "buildTarget": "my-app:build:production"
      }
    },
    "defaultConfiguration": "development"
  },
登录后复制

为特定环境构建和服务:

为生产而构建:

要构建生产应用程序,请使用:

ng build --configuration=生产

使用 angular.json 中定义的配置名称(在我们的场景中为生产、暂存)

为 UAT 服务:

要为您的 UAT 申请提供服务,请使用:

ngserve --configuration=staging

结论

采用特定于环境的配置可以显着增强开发人员的体验。它提供了一种干净且可维护的方法,简化了跨不同环境的应用程序部署,并最终缩短了平均生产时间 (MTTP)。

此外,如果您喜欢阅读这篇文章,您可以在这里了解更多关于我的信息。

以上是使用environment.ts跨环境构建和服务Angular应用程序(Angular)的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板