angular / angular-cli

CLI tool for Angular
https://cli.angular.dev
MIT License
26.78k stars 11.98k forks source link

ng serve does not support the "define" argument #28905

Open Klaster1 opened 2 days ago

Klaster1 commented 2 days ago

Command

serve

Description

I want to pass environment variables into the application during serve and build. In Angular 19, this works for build: ng build --define="GGCC_TARGET='hosted'", while this doesn't for serve: ng serve --define="GGCC_TARGET='hosted'", with the following error:

Error: Unknown argument: define

Describe the solution you'd like

The --define argument works for both serve and build commands.

Describe alternatives you've considered

The custom "@ngx-env/builder:application" builder works, but I'd prefer to keep the amount of extra libraries to a minimum. Given how that builder is merely a thin wrapper around "@angular/build:application", I don't see why this couldn't work as I expect out of the box.

alan-agius4 commented 2 days ago

This behavior is expected since the define configuration is derived from the build section of the angular.json file when executing ng serve.

"architect": {
  "build": {
    "builder": "@angular-devkit/build-angular:application",
    "options": {
      "define": {
        "GGCC_TARGET": "'hosted'"
      },
Klaster1 commented 2 days ago

Sorry, but I don't get it. Do you suggest to edit the "angular.json" instead of passing an env var, which worked for my team for years?

alan-agius4 commented 2 days ago

Does the value of GGCC_TARGET need to change between various ng serve invocations where its value is set via an environment variable?

Klaster1 commented 2 days ago

Yes, I pass different values to run the app in different configurations, i.e with some fractures hidden and different brandings.

angular-robot[bot] commented 7 hours ago

This feature request is now candidate for our backlog! In the next phase, the community has 60 days to upvote. If the request receives more than 20 upvotes, we'll move it to our consideration list.

You can find more details about the feature request process in our documentation.