Can't use an array of hostnames in --allowedHosts cli parameter in @angular/build:dev-server

Aperta Adatta ai principianti
#33,955 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
74/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
angular, typescript, vite
Ambito
build-system, cli

Direzione di ricerca

Confronta packages/angular/build/src/builders/dev-server/schema.json con packages/angular_devkit/build_angular/src/builders/dev-server/schema.json, concentrandoti sulle definizioni di allowedHosts e sulla gestione correlata delle opzioni di dev-server. Conferma la compatibilità prevista con il comportamento esistente di disableHostCheck, quindi verifica che @angular/build:dev-server accetti un array di nomi host tramite la CLI senza interrompere l’opzione all-hosts supportata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

area: @angular/build gemini-triaged
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 myproject

or 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:

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

Lingua principale
TypeScript
Stelle
27k
Fork
11.8k
Merge medio
16h 21m
PR unite (30g)
170

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di angular/angular-cli

Tutte le issue di angular/angular-cli

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.