7

我有一个相当复杂的angular.json,因为我有多个项目。我想要的是每个项目单独的 environment.ts 文件。当构建目标是生产时替换环境文件似乎非常简单:

"configurations": {
  "production": {
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/private-label/redacted/environments/environment.prod.ts"
      }
    ],
  }
}

我正在寻找的是一种对默认/开发配置执行相同操作的方法。不包含我能找到的任何类似的angular.json配置节点,所以我不确定它是否可能和/或在fileReplacements不针对生产时指定的位置。

当然,如果有更好的方法来处理我没有看到的每个项目的环境,我也会对此感兴趣。

4

3 回答 3

6

我假设您使用“默认/开发配置”指的是ng serve命令提供的内容。

选项1:替换环境文件:

您也可以在对象中指定fileReplacements数组build(这个用于ng serve)。

  "build": {
    "options": {
      [...]
      "fileReplacements": [
        {
          "replace": "src/environments/environment.ts",
          "with": "src/environments/environment.development.ts"
        }
      ]      
    },
    "configurations": {
      // other - non default - configurations 
    }
  }

选项 2:指定默认配置:

如果要使用 提供现有配置ng serve,可以更改serve选项:

  "configurations": {
    "youConfigName": {
      // config details here
    }
  },
  [...]
  "serve": {
    "options": {
      "browserTarget": "name-of-your-app:build:youConfigName"
    }
  }

重要的一点是使用:yourConfigName.


这两个选项都是按项目配置的,因此您可以完全控制。

于 2019-02-16T17:05:36.580 回答
0

@jowey 的答案有效,但对 Angular 8 有一个小扩展。我必须在 url 前面加上 ./

“替换”:“./src/environments/environment.ts”,“替换”:“./src/environments/environment.development.ts”

于 2019-12-08T11:10:09.130 回答
0

此外,请务必执行正确的命令来启动/服务您的应用程序。就我而言,我使用 Azure Pipelines 部署到 Azure App Service,命令是:

在此处输入图像描述

请注意,“--configuration=production”是强制性的,以实现文件替换。

我还将“fileReplacements”部分放在 angular.json 文件的“build”和“configuration”部分中:

在此处输入图像描述

于 2021-05-03T19:04:11.753 回答