CJS และ ESM มีการทำงานภายในที่แตกต่างกันโดยสิ้นเชิง แม้จะเรียกใช้ข้ามกันได้ แต่ก็ยุ่งยาก

  • CJS : require() และ module.exports

  • ESM : import และ export

บทความนี้เปรียบเทียบทั้งสองแบบอย่างละเอียด และอธิบายลึกไปถึงภายในว่าทำไมจึงต่างกัน และทำไมการเชื่อมต่อถึงยุ่งยาก

แนวทางที่ผู้เขียนแนะนำสำหรับนักพัฒนาไลบรารี Node

  1. มีเวอร์ชัน CJS ให้ใช้งาน

  2. ทำ thin ESM wrapper ไว้บน CJS

  3. เพิ่ม exports ใน package.json

แน่นอนว่า ESM เป็นแนวทางที่ใหม่กว่า แต่เพราะมีการเปลี่ยนแปลงจำนวนมาก และการทำ ESM wrapper บน CJS นั้นง่ายกว่า ผู้เขียนจึงมองว่านี่น่าจะเป็นวิธีที่ดีที่สุดในตอนนี้

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น