Tôi quyết định thử dùng WebPack trên một dự án mới mà tôi đang quay vòng hôm nay và tôi nhận được hành vi thực sự kỳ lạ từ các bản sourcemaps. Tôi không thể tìm thấy bất cứ điều gì về nó trong tài liệu, cũng không phải tôi có thể tìm thấy bất cứ ai khác có vấn đề này khi skimming StackOverflow.Webpack sourcemaps khó hiểu (các tệp trùng lặp)
Tôi hiện đang xem ứng dụng HelloWorld được sản xuất bởi Vue-CLI's WebPack template - không có thay đổi nào được thực hiện đối với mã, môi trường xây dựng hoặc bất kỳ thứ gì.
Tôi đã cài đặt tất cả mọi thứ và chạy nó như vậy:
vue init webpack test && cd test && npm install && npm run dev
Nhìn vào sourcemaps của tôi, tôi thấy như sau:
Đây là một mớ hỗn độn nóng. Tại sao có ba phiên bản HelloWorld.vue
và App.vue
? Tệ hơn nữa, mỗi phiên bản có một phiên bản hơi khác một chút và không có phiên bản nào phù hợp với nguồn gốc. Các HellowWorld.vue
ngồi trong thư mục gốc hiện phù hợp với nguồn gốc, nhưng những gì nó làm xuống đó thay vì trong thư mục ./src/components
? Cuối cùng, tại sao không có một số thứ tư App.vue
có nguồn gốc cho nó?
Theo như tôi có thể nói điều này có thể có liên quan đến trình tải WebPack. Tuy nhiên, tôi chưa bao giờ nhận được các loại vấn đề này với bất kỳ trình bundler nào khác. Dưới đây là một ví dụ về các bước chính xác tương tự sử dụng template Browserify Vue-CLI:
Không webpack://
lược đồ, chỉ có một bản sao của tất cả các tập tin, các tập tin thực sự chứa mã nguồn gốc (loại quan trọng đối với bản đồ nguồn), không có bất ngờ (webpack)/buildin
hoặc (webpack)-hot-middleware
, không có .
thư mục con, .... chỉ là mã nguồn.
Việc thiếu bản đồ nguồn có ý nghĩa đã làm cho việc gỡ rối và chẩn đoán các vấn đề với mã của tôi trở nên vô cùng khó khăn. Ví dụ, tôi đã cố gắng để Vuex làm việc nhưng trạng thái của tôi luôn luôn trống rỗng. Tôi đã dành một giờ và không thể hiểu tại sao. – stevendesu
Bạn có chắc chắn đây là vấn đề về webpack không, ví dụ: bạn đã thử sử dụng trình duyệt khác hoặc thay đổi [source map] (https://github.com/vuejs-templates/webpack/blob/develop/template/build /webpack.dev.conf.js#L20) gõ? Có thể liên quan đến việc tải lại nóng/thay thế mô-đun nóng, điều này không kích hoạt tải lại trang đầy đủ (bản đồ nguồn thường được lưu trong bộ nhớ cache của trình duyệt). Bạn có thể thấy nhiều phiên bản 'HelloWorld.vue' sau khi tải lại toàn bộ trang không? –
Tôi đã thử các trình duyệt khác, nhưng tôi chưa thử thay đổi loại bản đồ nguồn. Tôi có thể thử một vài và báo cáo lại. – stevendesu