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

Aberta Para iniciantes
#33,955 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
74/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
angular, typescript, vite
Domínio
build-system, cli

Direção de pesquisa

Compare packages/angular/build/src/builders/dev-server/schema.json com packages/angular_devkit/build_angular/src/builders/dev-server/schema.json, concentrando-se nas definições de allowedHosts e no tratamento relacionado das opções de dev-server. Confirme a compatibilidade pretendida com o comportamento existente de disableHostCheck e, em seguida, verifique se @angular/build:dev-server aceita um array de nomes de host pela CLI sem quebrar a opção all-hosts compatível.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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

Linguagem predominante
TypeScript
Estrelas
27k
Forks
11.8k
Merge médio
16h 21min
PRs com merge (30d)
170

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de angular/angular-cli

Todas as issues de angular/angular-cli

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.