Tôi đang cố gắng làm điều gì đó mà tôi tin là có thể, nhưng tôi thực sự không thể hiểu làm thế nào chỉ từ tài liệu webpack.
Tôi đang viết một thư viện JavaScript với một số mô-đun có thể phụ thuộc lẫn nhau. Trên hết, jQuery được sử dụng bởi tất cả các mô-đun và một số trong số chúng có thể cần các plugin jQuery. Thư viện này sau đó sẽ được sử dụng trên một số trang web khác nhau có thể yêu cầu một số hoặc tất cả các mô-đun.
Xác định sự phụ thuộc giữa các mô-đun của tôi rất dễ dàng, nhưng việc xác định sự phụ thuộc của bên thứ ba của họ dường như khó hơn tôi mong đợi.
Những gì tôi muốn đạt được : đối với mỗi ứng dụng tôi muốn có hai tệp bó một với các phụ thuộc bên thứ ba cần thiết và khác với các mô-đun cần thiết từ thư viện của tôi.
Ví dụ : Hãy tưởng tượng rằng thư viện của tôi có các mô-đun sau:
- a (yêu cầu: jquery, jquery.plugin1)
- b (yêu cầu: jquery, a)
- c (yêu cầu: jquery, jquery.ui, a, b)
- d (yêu cầu: jquery, jquery.plugin2, a)
Và tôi có một ứng dụng (xem nó như một tệp nhập duy nhất) yêu cầu các mô-đun a, b và c. Webpack cho trường hợp này sẽ tạo ra các tệp sau:
- gói nhà cung cấp : với jquery, jquery.plugin1 và jquery.ui;
- gói trang web : với các mô-đun a, b và c;
Cuối cùng, tôi muốn có jQuery như một toàn cầu vì vậy tôi không cần phải yêu cầu nó trên mỗi tệp duy nhất (ví dụ: tôi chỉ có thể yêu cầu nó trên tệp chính). Và các plugin jQuery sẽ chỉ mở rộng $ global trong trường hợp chúng được yêu cầu (không có vấn đề gì nếu chúng có sẵn cho các mô-đun khác không cần chúng).
Giả sử điều này là có thể, ví dụ về tệp cấu hình webpack cho trường hợp này là gì? Tôi đã thử một số kết hợp các trình tải, bên ngoài và plugin trên tệp cấu hình của mình, nhưng tôi không thực sự hiểu những gì chúng đang làm và những gì tôi nên sử dụng. Cảm ơn bạn!