如何在Angular 6 app中通过`ng build`指定环境

Neh*_*nia 16 angular-cli angular angular6

在Angular 5中,我们可以使用生成不同环境的构建

ng build --prod --env=uat
Run Code Online (Sandbox Code Playgroud)

迁移到Angular 6后,上面的命令会抛出错误

Unknown option: '--env'
Run Code Online (Sandbox Code Playgroud)

Neh*_*nia 25

一个人需要使用配置选项

ng build --prod --configuration=uat
Run Code Online (Sandbox Code Playgroud)

要么

ng build --prod -c uat
Run Code Online (Sandbox Code Playgroud)

更多信息在这里

对于ng,也提供与此处回答相同的选项


小智 5

我已经在 Angular 6 项目中进行了测试。

ng build --prod --configuration=uat似乎不起作用,因为它只在您运行此命令时选择 uat 配置并忽略--prod标志并且不应用任何优化,例如 aot、缩小和升级等。

跑步ng build --prod --configuration=uat和只跑步的效果一样ng build --configuration=uat。为了应用任何其他配置选项,我们需要在 angular.json 的 uat 构建选项中明确添加它们

"configurations": {
        "production": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ],
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractCss": true,
          "namedChunks": false,
          "aot": true,
          "extractLicenses": true,
          "vendorChunk": false,
          "buildOptimizer": true
        },
        "uat": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.test.ts"
            }
          ],
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractCss": true,
          "namedChunks": false,
          "aot": true,
          "extractLicenses": true,
          "vendorChunk": false,
          "buildOptimizer": true
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)