Nehal Damania
Nehal Damania

Reputation: 9008

How to specify environment via `ng build` in Angular 6 app

In Angular 5, we could generate build for different environments using

ng build --prod --env=uat

After migration to Angular 6 the above command throws error

Unknown option: '--env'

Upvotes: 28

Views: 33441

Answers (5)

goutam reddy
goutam reddy

Reputation: 57

Prod: ng build --prod
Qa: ng build --configuration=qa

angular.json
"production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ]
},
"qa": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.qa.ts"
                }
              ]
}

PROD:
export const environment = {
  production: true,
  api : 'https://example.com'
}

QA:
export const environment = {
    production: true,
    api : 'https://example-Qa.com'
}

dev environment
export const environment = {
    production:false,
    api : 'https://example-dev.com'
}

Upvotes: 0

Fruit Durian
Fruit Durian

Reputation: 21

you can try to use:

ng build --configuration=uat

Upvotes: 2

bhaskerchari
bhaskerchari

Reputation: 101

I have tested in an Angular 6 Project.

ng build --prod --configuration=uat doesn't seem to work as it only picks uat configuration when you run this command and ignores --prod flag and doesn't apply any optimization such as aot, minification and upglification etc.

Running ng build --prod --configuration=uat has the effect as same as only running ng build --configuration=uat. In order to apply any other configuration options we need to add them explicitly in the uat build options in angular.json

"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
        }
      }
    }

Upvotes: 10

ABHISHEK KUMAR
ABHISHEK KUMAR

Reputation: 11

you can try to use

ng build ---prod

Upvotes: 1

Nehal Damania
Nehal Damania

Reputation: 9008

One needs to use the configuration option

ng build --prod --configuration=uat

or

ng build --prod -c uat

More information here

Also for ng serve same option as answered here

Upvotes: 39

Related Questions