ฉันเริ่มทำงานร่วมกับ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
ไม่มีคุณควรใช้สิ่งนั้น