2017-04-10 15 views
7

Có cách nào trong webpack 2 để vô hiệu hóa tính năng lắc cây hoặc hoàn nguyên về hành vi webpack 1 trong đó nhập được xử lý bởi babel không? Tôi đã có những gì dường như là một lỗi trong webpack, nhưng nó chỉ xảy ra ngẫu nhiên (không 100% tái tạo) và tôi muốn trở lại hành vi cũ để xem vấn đề có biến mất hay không.Có cách nào để tắt tính năng lắc cây trong webpack 2 không?

Lỗi tôi thấy là nơi tôi nhập một mô-đun trong nút_modules và đôi khi biểu tượng kết quả là không xác định. Ví dụ:

import { withRouter } from 'react-router'; 

Giá trị 'withRouter' không được xác định, nhưng chỉ trong một mô-đun. Thật kỳ lạ, điều này chỉ xảy ra khi xây dựng ban đầu, nếu tôi làm một việc xây dựng gia tăng mọi thứ hoạt động tốt.

Lưu ý rằng thiết lập { modules: true } cho babel không hoạt động - nó chỉ đơn giản là khiến webpack báo cáo lỗi.

Tôi không muốn báo cáo lỗi này cho đến khi tôi tìm hiểu thêm. Và bởi vì điều này chỉ xảy ra với một biểu tượng trong hàng ngàn trong một dự án lớn, tôi nghi ngờ rằng tôi có thể tạo ra một trường hợp repro nhỏ.

Edit: Tôi tạo ra một ví dụ nhỏ gọn có thể tạo lại vấn đề:

https://github.com/viridia/webpack-miscompile

+0

Bạn có muốn tìm cách tắt tính năng xóa mã không sử dụng không? Tôi đang đối mặt với một vấn đề tương tự, nơi tôi đang xây dựng gói npm chứa một số mô-đun có nghĩa là được sử dụng bởi các thư viện người tiêu dùng khác, nhưng không được tham chiếu trong gói npm, do đó webpack loại trừ chúng khỏi gói đầu ra. –

+0

Tôi chưa bao giờ nhận được phản hồi ở đây hoặc lỗi github tôi đã gửi với webpack. Tôi gặp may mắn với stackoverflow gần đây, phần lớn các câu hỏi của tôi không được trả lời. – Talin

+0

Tôi ghét phải thêm "tôi nữa" nhưng ... "tôi cũng vậy". Các mô-đun hiện diện trong chế độ phát triển là SOMETIMES không có trong sản xuất. Cây lắc có vẻ là để đổ lỗi nhưng tôi không thể phân biệt làm thế nào để vô hiệu hóa nó ... Ít nhất để xem nếu đó là thủ phạm. –

Trả lời

0

tôi tìm thấy giải pháp cho vấn đề ban đầu của tôi mà tôi đã cố gắng để debug - xem https://github.com/webpack/webpack-dev-server/issues/876 cho một lời giải thích đầy đủ. Về cơ bản tôi đã sử dụng một tùy chọn gọi lại sai trong webpack-dev-server.

Tuy nhiên, tôi chưa bao giờ phát hiện ra nếu có tùy chọn tắt tính năng lắc cây.

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