Can't use an array of hostnames in --allowedHosts cli parameter in @angular/build:dev-server
Command
serve
Is this a regression?
- Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
No response
Description
When using @angular-devkit/build-angular:dev-server I can use --allowedHosts parameter with array of hostnames, so my hostnames can be dynamic.
But when using @angular/build:dev-server the array of names is not recognized (only boolean type is passed instead?)
ng serve myproject --allowed-hosts "example.com""Error: Unknown argument: example.com"
Workaround:
__VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS=example.com ng serve myprojector hard code in the array format in angular.json like mentioned in https://github.com/angular/angular/issues/64104
Comparing the two builder i can see this difference if you "patch" @angular/build:dev-server's schema.json, then the command will work.
https://github.com/angular/angular-cli/blob/main/packages/angular_devkit/build_angular/src/builders/dev-server/schema.json vs https://github.com/angular/angular-cli/blob/main/packages/angular/build/src/builders/dev-server/schema.json
"allowedHosts": {
+ "type": "array",
"description": "The hosts that the development server will respond to. This option sets the Vite option of the same name. For further details: https://vite.dev/config/server-options.html#server-allowedhosts",
"default": [],
+ "items": {
+ "type": "string"
+ }
- "oneOf": [
- {
- "type": "array",
- "description": "A list of hosts that the development server will respond to.",
- "items": {
- "type": "string"
- }
- },
- {
- "type": "boolean",
- "description": "Indicates that all hosts are allowed. This is not recommended and a security risk."
- }
- ]
},@see issue * PR for the devkit commit that added the option:
- https://github.com/angular/angular-cli/issues/13656
- https://github.com/angular/angular-cli/pull/15366
It note that @angular-devkit/build-angular:dev-server also has a (custom?) --disableHostCheck parameter which sets allowedHosts to true if passed, so then disable all hosts situation can be covered as schema no longer allows boolean, only array.
Not sure how to fix properly.
Minimal Reproduction
Exception or Error
Your Environment
-Anything else relevant?
No response
Source: angular/angular-cli