2016-02-12 19 views
8

Tôi đang phát triển nhiều plugin cho hệ thống tải các plugin này dưới dạng mô đun AMD (với requirejs). Plugin được viết dưới dạng mô-đun ES6 và được đóng gói với webpack (output.libraryTarget = 'amd'). Tất cả mọi thứ hoạt động như mong đợi cho đến nay.Tạo mô-đun AMD với gói webpack và CommonsChunkPlugin

Nhưng plugin chia sẻ khá nhiều mã phổ biến được nhóm vào mọi mục nhập. Tôi đã thử sử dụng plugin webpack CommonsChunkPlugin nhưng đoạn ban đầu chứa mã không phải là mô-đun AMD. Tuy nhiên các điểm vào khác chuyển tiếp trên mâm cặp chung vẫn được tạo chính xác. Ngoài ra documentation nói rằng nó không phải là ý tưởng tốt để có nhiều khối ban đầu (với thời gian chạy JSONp) trên một trang - có khả năng là một tác giả plugin khác sẽ sử dụng cách tiếp cận tương tự.

Có cách nào để tối ưu hóa trường hợp sử dụng này theo cách tương thích với AMD không? Có vẻ như tôi là một lỗi trong CommonsChunkPlugin rằng mục nhập ban đầu không phải là AMD (nhưng mã của nó vẫn không an toàn để được tải trong plugin env) ... Có cấu hình nào tôi bị thiếu không?

+1

Cùng một vấn đề ở đây. Dường như có khối cho bất kỳ lý do gì và tạo ra một thư viện amd không tương thích. –

Trả lời

1

Tôi không chắc chắn rằng bạn hiểu chính xác. Nhưng nếu bạn muốn xây dựng gói của mình làm mô-đun AMD, bạn phải cấu hình nó như là một library:

... 
output: { 
    ... 
    library: true, 
    libraryTarget: 'umd' 
}, 
+0

Vì vậy, bạn có thể cần phải định cấu hình tham số libraryTarget theo cách xuất của bạn: http://webpack.github.io/docs/configuration.html#output-librarytarget – Kreozot

+0

Hoạt động chính xác. Nhưng tôi muốn sử dụng [CommonsChunkPlugin] (https://webpack.github.io/docs/list-of-plugins.html#commonschunkplugin) và đầu ra của các khối chung không phải là AMD. – ahz

+0

Tại sao bạn không sử dụng nhiều điểm vào? – Kreozot

Các vấn đề liên quan