2015-10-28 13 views
42

Tôi đang làm theo một số hướng dẫn để xây dựng một ứng dụng đẳng hình với diễn đạt và phản ứng. Tôi đang bối rối với webpack-dev-server.Tôi có cần webpack-dev-server nếu tôi đang sử dụng máy chủ nút như express

Các webpack hướng dẫn nói về webpack-dev-server:

này liên kết với một máy chủ nhỏ nhanh trên localhost: 8080 phục vụ tài sản tĩnh của bạn cũng như các bó (biên soạn tự động).

Tự động cập nhật trang trình duyệt khi gói được biên dịch lại (socket.io). Mở http://localhost:8080/webpack-dev-server/bundle trong trình duyệt của bạn.

Vì tôi có máy chủ tốc hành, tôi có thực sự cần webpack-dev-server không? Hoặc những lợi thế và bất lợi của việc sử dụng nó là gì? Và nếu tôi muốn sử dụng bộ nạp nóng phản ứng, thì máy chủ webpack-dev-server có cần thiết không?

Trả lời

54

Vì tôi có máy chủ tốc hành, tôi có thực sự cần webpack-dev-server không?

Có và không. Bạn có thể sử dụng phương pháp lai, về cơ bản thiết lập webpack-dev-server làm proxy. Bạn có máy chủ tốc hành phục vụ mọi thứ trừ tài sản. Nếu đó là nội dung, yêu cầu sẽ được chuyển tiếp/proxy đến máy chủ webpack-dev. Xem câu trả lời ở đây để biết thêm chi tiết: How to allow for webpack-dev-server to allow entry points from react-router

Ngoài ra, bạn có thể sử dụng webpack-dev-middlewarewebpack-hot-middleware thay vào đó nếu bạn không muốn xử lý tất cả logic ủy nhiệm lộn xộn và có 2 máy chủ đang chạy. Xem ví dụ tại đây: https://github.com/glenjamin/webpack-hot-middleware/blob/master/example/server.js

lợi thế và bất lợi khi sử dụng?

Thay thế mô-đun và tải lại trực tiếp. Tính năng hữu ích để phát triển theo ý kiến ​​của tôi

Và nếu tôi muốn sử dụng bộ nạp nóng phản ứng, thì máy chủ webpack-dev-server có cần thiết không?

Không, nó hoạt động trên đầu trang của Webpack hot module replacement interface. Bạn có thể tạo 'hot server' của riêng mình nếu muốn. Máy khách webpack-dev-server chỉ cần nghe socket.io để cập nhật nóng và gọi postMessage (https://github.com/webpack/webpack-dev-server/blob/8e8f540b2f7b35f7b6c3ce616a7fd2215aaa6eea/client/index.js#L64-L67) sau đó được máy chủ https://github.com/webpack/webpack/blob/bac9b48bfb0f7dd9732f2faafb43ebb22ee2a2a7/hot/only-dev-server.js#L59-L67 chọn.

Hoặc những gì tôi đề nghị là bạn chỉ có thể sử dụng webpack-dev-middleware và webpack-hot-middleware mà tôi đã đề cập ở trên. Bằng cách này, bạn không phải lo lắng về logic proxy và bạn có thể dễ dàng tích hợp tải lại nóng vào máy chủ hiện tại của mình mà không cần webpack-dev-server

+0

Thx! Vì vậy, tôi có thể nói thực hành tốt nhất của việc sử dụng bộ tải phản ứng nóng là sử dụng các phần mềm trung gian mà bạn đã đề cập? Điều gì nếu xem xét các env sản xuất? Tôi không nghĩ rằng tôi cần phải tải lại trực tiếp trong đó, phải không? Vì vậy, tôi nên xóa các mã phần mềm trung gian? –

+0

bộ phản ứng tải nóng đang được khấu hao, vì vậy tôi sẽ xem https://github.com/gaearon/react-transform-hmr (nó do cùng một tác giả). Có, bạn không cần tải lại trực tiếp cho sản xuất, vì vậy trong server.js của bạn, tôi chỉ có thể kiểm tra env. Nếu nó phát triển, hãy sử dụng phần mềm trung gian. khác, chỉ cần bỏ qua điều đó. – trekforever

+0

Thnx. Tôi đã chấp nhận câu trả lời này. –

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