ฉันเริ่มทำงานร่วมกับwebpackกับnode/expressสภาพแวดล้อมการพัฒนาแอพลิเคชันด้านเซิร์ฟเวอร์แสดงผลด้วยReactJS react-routerฉันสับสนมากเกี่ยวกับบทบาทของแต่ละแพ็คเกจ webpack สำหรับสภาพแวดล้อม dev และ prod (รันไทม์)
นี่คือบทสรุปของความเข้าใจของฉัน:
webpack: เป็นแพ็กเกจซึ่งเป็นเครื่องมือในการรวมส่วนต่างๆของเว็บแอปพลิเคชันเข้าด้วยกันแล้วรวมเป็นไฟล์. js ไฟล์เดียว (ปกติbundle.js) จากนั้นไฟล์ผลลัพธ์จะถูกให้บริการในสภาพแวดล้อม prod ที่จะโหลดโดยแอปพลิเคชันและมีส่วนประกอบที่จำเป็นทั้งหมดเพื่อรันโค้ด คุณสมบัติต่างๆ ได้แก่ การย่อขนาดโค้ดการย่อขนาดและอื่น ๆ
webpack-dev-server: เป็นแพ็คเกจที่มีเซิร์ฟเวอร์ในการประมวลผลไฟล์เว็บไซต์ นอกจากนี้ยังสร้างไฟล์. js ( bundle.js) ไฟล์เดียวจากคอมโพเนนต์ไคลเอ็นต์ แต่ทำหน้าที่ในหน่วยความจำ นอกจากนี้ยังมีตัวเลือก ( -hot) เพื่อตรวจสอบไฟล์สิ่งปลูกสร้างทั้งหมดและสร้างบันเดิลใหม่ในหน่วยความจำในกรณีที่มีการเปลี่ยนแปลงรหัส เซิร์ฟเวอร์ที่มีหน้าที่โดยตรงในเบราว์เซอร์ (เช่น: http:/localhost:8080/webpack-dev-server/whatever) การรวมกันของการโหลดหน่วยความจำการประมวลผลแบบร้อนและการให้บริการของเบราว์เซอร์ช่วยให้ผู้ใช้สามารถอัปเดตแอปพลิเคชันบนเบราว์เซอร์เมื่อโค้ดเปลี่ยนแปลงเหมาะสำหรับสภาพแวดล้อมการพัฒนา
หากฉันมีข้อสงสัยเกี่ยวกับข้อความข้างต้นฉันไม่แน่ใจเกี่ยวกับเนื้อหาด้านล่างนี้จริงๆดังนั้นโปรดแนะนำฉันหากจำเป็น
ปัญหาที่พบบ่อยเมื่อใช้webpack-dev-serverกับnode/expressเป็นสิ่งที่เป็นเซิร์ฟเวอร์ที่เป็นอยู่webpack-dev-server node/expressทำให้สภาพแวดล้อมนี้ยุ่งยากในการรันทั้งไคลเอนต์และโหนด / รหัสด่วน (API เป็นต้น) หมายเหตุ: นี่คือสิ่งที่ฉันเผชิญ แต่จะดีมากที่จะเข้าใจว่าเหตุใดจึงเกิดขึ้นในรายละเอียดเพิ่มเติม ...
webpack-dev-middleware: นี่คือมิดเดิลแวร์ที่มีฟังก์ชั่นเดียวกันของwebpack-dev-server(การรวมหน่วยความจำ, การโหลดซ้ำแบบร้อน) แต่อยู่ในรูปแบบที่สามารถแทรกลงในserver/expressแอปพลิเคชันได้ ด้วยวิธีนี้คุณมีประเภทของเซิร์ฟเวอร์ (the webpack-dev-server) ภายในเซิร์ฟเวอร์โหนด  อ๊ะ: นี่ฝันบ้าเหรอ ??? งานชิ้นนี้จะแก้สมการ dev และ prod และทำให้ชีวิตง่ายขึ้นได้อย่างไร
webpack-hot-middleware: นี่ ... ติดอยู่ที่นี่ ... พบชิ้นส่วนนี้เมื่อมองหาwebpack-dev-middleware... ไม่รู้ว่าจะใช้อย่างไร 
ENDNOTE: ขออภัยมีการคิดผิด ฉันต้องการความช่วยเหลือจริงๆเพื่อที่จะปฏิเสธความหลากหลายเหล่านี้ในสภาพแวดล้อมที่ซับซ้อน หากต้องการความสะดวกโปรดเพิ่มแพ็คเกจ / ข้อมูลเพิ่มเติมเพื่อสร้างสถานการณ์ทั้งหมด
webpack-dev-middleware(และอาจเป็นไปได้webpack-hot-middleware) หากคุณต้องการเขียนเซิร์ฟเวอร์การพัฒนาที่กำหนดเอง หากไม่มีคุณลักษณะเฉพาะที่คุณต้องการซึ่งwebpack-dev-serverไม่มีคุณควรใช้สิ่งนั้น