angular / angular/angular-cli

respect wepack export condition for importing

Đang mở
#27,100 4 bình luận 12 reaction 0 người được giao Xem trên GitHub
area: @angular-devkit/build-angular devkit/build-angular:browser feature feature: insufficient votes
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

build, extract-i18n, serve, test

### Description

The root problem I am trying to solve is the different import behavior of esbuild and webpack for url resources like described here ( https://github.com/angular/angular-cli/issues/24470 ).

We have a npm package shipping company fonts and scss file to import them.

I know that there are other possibilities, but I also discovered that we could have different entrypoints for webpack and esbuild
when using conditions in the package.json as described here: https://webpack.js.org/guides/package-exports/#conditions-preprocessor-and-runtimes.

This was leading me to this package.json
```json
"exports": {
"./styles/*": {
"webpack": {
"sass": "./dist/styles/webpack/*.scss",
"less": "./dist/styles/webpack/*.less",
"style": "./dist/styles/webpack/*.css"
},
"sass": "./dist/styles/*.scss",
"less": "./dist/styles/*.less",
"style": "./dist/styles/*.css"
},
"./*": "./dist/fonts/*"
}
```

The only problem here is, that this does not work. Webpack is loading the normal sass styles.

### Describe the solution you'd like

It would be really cool if the webpack condition is matched.

### Describe alternatives you've considered

We could offer a scss variable so that consumers can override the font path or just casually export the file. This still does not solve the problem when using esbuild and the karma runner but at least they could do something.

I am not sure how much effort it is fixing this, but in case you just need to add `webpack` here: https://github.com/angular/angular-cli/blob/main/packages/angular_devkit/build_angular/src/tools/webpack/configs/styles.ts#L382 it would be really cool if you could do it.

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

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

Hướng nghiên cứu

Bắt đầu tại packages/angular_devkit/build_angular/src/tools/webpack/configs/styles.ts, khoảng dòng 382, và lần theo cách các import style phân giải các điều kiện export của package. Chạy các lệnh build, extract-i18n, serve và test với ví dụ package; được xem là hoàn tất khi webpack chọn điều kiện của nó và việc phân giải sass, less và style hiện có vẫn tiếp tục hoạt động.

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

Đánh giá

Công nghệ
sass, scss, typescript, webpack
Lĩnh vực
build-system, tooling
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/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.