2016-11-13 16 views
8

Tôi đã thiết lập webpack 2 với góc cạnh và hầu như có vẻ như nó hoạt động. Nó không có vẻ mặc dù nó hiện tree-shaking, kể từ khi tôi có một ứng dụng mà hầu như không có gì, và vendor.js vẫn còn 800 + KB.Làm thế nào để sử dụng cây lắc với webpack 2 và kiểu chữ và góc 2?

Có vẻ như có rất ít thông tin về cách bật tính năng lắc cây, nhưng điều tôi hiểu là nó tự động được bật cho các mô-đun ES6, nhưng không hoạt động đối với ES5. Là vậy sao?

Và quan trọng nhất: Làm thế nào tôi có thể áp dụng cây lắc cho bản thảo/angular2 với webpack2?

+0

Có, nó không hoạt động đối với các mô-đun CJS (không có mô-đun ES5), và nó cần cho các mô-đun ES6. Vì đây chủ yếu là một câu hỏi Webpack, một repo sao chép vấn đề sẽ giúp ích. [Có thể có vấn đề với các lớp TS chuyển tải cây] (https://github.com/mishoo/UglifyJS2/issues/1261). – estus

+0

@ bestus tốt, có thể nó thậm chí hoạt động, nhưng tôi đã không bật bất cứ điều gì có mục đích. Có cách nào dễ dàng để kiểm tra xem nó có hoạt động không? –

+0

Kiểm tra sự tồn tại của một số lớp không được sử dụng trong đầu ra JS được rút gọn. – estus

Trả lời

4

Tôi đã tìm thấy điều này rất đẹp repository với các ví dụ về cách thực hiện việc này.

Như đã đề cập trong đó và trong phần nhận xét cho câu hỏi, có những lỗi rõ ràng ngăn chặn sự rung chuyển của cây. Điều đó có nghĩa là nó không thực sự có thể làm bây giờ với "target": "es5".

Chúng tôi có thể sử dụng es2015, nhưng sau đó chúng tôi sẽ cần một số bước bổ sung (ví dụ: qua Babel) để biên dịch thành es5 cho đến khi trình duyệt hỗ trợ.

+1

Tại sao bạn cần Babel để chuyển thành «es5'? AFAIK TypeScript có cài đặt 'target' trong cấu hình cho biết phiên bản nào sẽ được chuyển đổi. – tftd

+0

Nó có, nhưng ít nhất tại thời điểm viết nó đã tạo ra mã không đủ tốt để làm rung lắc cây. Đừng nhớ nhiều chi tiết, và có lẽ nó là tốt hơn bây giờ là tốt. –

+0

Cảm ơn bạn đã trả lời! Tôi hiện đang đấu tranh với việc làm cho nó hoạt động tốt. Có vẻ như đây là một nhức đầu lớn để làm cho nó hoạt động ... :) – tftd

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