In the Angular CLI, what is the difference between the --target
and --environment
options when running the build command?
From the documentation:
ng build can specify both a build target (–target=production or –target=development) and an environment file to be used with that build (–environment=dev or –environment=prod). By default, the development build target and environment are used.
However, they never really clarify the distinction between the two.
From what I can gather, the --environment
flag controls which environment file (environment.ts
vs environment.prod.ts
) gets used when doing the build. But then what does --target
control?
Best Answer
--environment
is a key for the apps[0].environments object from .angular-cli.jsonIt is like a profile for the running environment (for example: local, development server, test server, CI server, stage server, production server and so on). The value of the apps[0].environments object is a file name with all settings for the environment. There you could set up backend endpoint, keys and whatever else you want. Then you could use it inside your code:
Every environment could be production (environment.production === true) or non production i.e. development (environment.production === false). This is a target which could be defined also with the next parameter:
--target
is a enum of two values:development
orproduction
. It is a 'meta' flags, that set other flags:from https://github.com/angular/angular-cli/wiki/build/1cf783837c392f5fadc7286e1fb28220b9a1b507#--dev-vs---prod-builds