Việc xử lý các điều kiện lồng nhau của Vite trong xuất khẩu có điều kiện tương tự như các gói hiện đại khác như Rollup và Webpack, nhưng với một số khác biệt chính:
Lệnh làm tổ và đặc hiệu
- VITE: Các điều kiện có thể được lồng trong trường `xuất` của` pack.json`. Chúng nên được chỉ định từ hầu hết các cụ thể đến ít nhất. VITE sẽ phù hợp với điều kiện đầu tiên trong danh sách điều kiện được phép của nó [1].
- Rollup: Rollup hỗ trợ các điều kiện lồng nhau trong trường `xuất`, theo thứ tự đặc hiệu tương tự như VITE [2].
- WebPack: WebPack cũng hỗ trợ các điều kiện lồng nhau trong trường 'Xuất khẩu', yêu cầu thứ tự đặc hiệu giống như Vite và Rollup [3].
Điều kiện được phép
- VITE: Có một danh sách các điều kiện cho phép được xác định trước bao gồm `nhập`,` mô-đun`, `trình duyệt`,` mặc định 'và các điều kiện dành riêng cho môi trường như `sản xuất` hoặc` phát triển`. Tùy chọn `resolve.conditions` config có thể thêm nhiều hơn [1].
- Rollup: Cho phép chỉ định các điều kiện tùy chỉnh thông qua các tùy chọn `Preservemodules` và` bảo quản bảo quản [2].
- WebPack: Cho phép xác định các điều kiện tùy chỉnh thông qua tùy chọn `resolve.conditionNames` [3].
Xử lý các điều kiện không chính xác
- VITE: Nếu các điều kiện không được cấu trúc chính xác hoặc vite chọn xuất khẩu không chính xác, nó có thể dẫn đến lỗi thời gian chạy. Cấu trúc cẩn thận của trường `xuất` là rất quan trọng [1].
- Rollup: Rollup sẽ ghi lại cảnh báo nếu nó gặp các vấn đề với trường `xuất`, nhưng vẫn có thể giải quyết một điểm nhập cảnh [2].
- WebPack: WebPack sẽ đăng nhập các lỗi nếu trường `exports` bị lỗi hoặc nếu nó không thể giải quyết một điểm nhập [3].
Hỗ trợ Monorepo
- VITE: Tự động phát hiện các phụ thuộc được liên kết trong một monorepo và coi chúng là mã nguồn, phân tích các phụ thuộc của chúng thay vì bó chúng [4].
- Rollup: Yêu cầu sử dụng các plugin như `@rollup/plugin-alias` để xử lý các phụ thuộc được liên kết trong một monorepo [2].
- WebPack: Yêu cầu sử dụng các plugin như `nâng cao độ phân giải` để xử lý các phụ thuộc được liên kết trong một monorepo [3].
Tóm lại, việc xử lý các điều kiện lồng nhau của VITE tương tự như các gói khác, nhưng nó có một số lợi thế như hỗ trợ Monorepo tự động và danh sách các điều kiện được phép mạnh mẽ hơn. Tuy nhiên, tất cả các gói yêu cầu cấu trúc cẩn thận của trường `xuất` để tránh các vấn đề.
Trích dẫn:[1] https://v2.vitejs.dev/config/
[2] https://vitejs.dev/guide/features
[3] https://vitejs.dev/guide/dep-pre-bundling
[4] https://vitejs.dev/guide/build
[5] https://vitejs.dev/config/shared-options