angular / angular/angular-cli

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

Đang mở Phù hợp với người mới
#33,955 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
area: @angular/build gemini-triaged
Ngôn ngữ chính
TypeScript
Star
27k
Fork
11.8k
Merge trung bình
14 giờ 23 phút
Pull request đã merge (30 ngày)
162

Mô tả

### 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?)

```bash
ng serve myproject --allowed-hosts "example.com"
```
"**Error: Unknown argument: example.com**"

Workaround:

```bash
__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

```diff
"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

```text

```

### Your Environment

```text
-
```

### Anything else relevant?

_No response_

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

So sánh packages/angular/build/src/builders/dev-server/schema.json với packages/angular_devkit/build_angular/src/builders/dev-server/schema.json, tập trung vào các định nghĩa allowedHosts và cách xử lý các tùy chọn dev-server liên quan. Xác nhận khả năng tương thích dự kiến với hành vi disableHostCheck hiện có, sau đó kiểm tra rằng @angular/build:dev-server chấp nhận một mảng tên máy chủ thông qua CLI mà không làm hỏng tùy chọn all-hosts được hỗ trợ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
angular, typescript, vite
Lĩnh vực
build-system, cli
Loại issue
Lỗi
Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
74/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.