โมดูล Node กำลังอยู่ในสงคราม: CommonJS vs ESM
(redfin.engineering)CJS และ ESM มีการทำงานภายในที่แตกต่างกันโดยสิ้นเชิง แม้จะเรียกใช้ข้ามกันได้ แต่ก็ยุ่งยาก
-
CJS :
require()และmodule.exports -
ESM :
importและexport
บทความนี้เปรียบเทียบทั้งสองแบบอย่างละเอียด และอธิบายลึกไปถึงภายในว่าทำไมจึงต่างกัน และทำไมการเชื่อมต่อถึงยุ่งยาก
แนวทางที่ผู้เขียนแนะนำสำหรับนักพัฒนาไลบรารี Node
-
มีเวอร์ชัน CJS ให้ใช้งาน
-
ทำ thin ESM wrapper ไว้บน CJS
-
เพิ่ม
exportsในpackage.json
แน่นอนว่า ESM เป็นแนวทางที่ใหม่กว่า แต่เพราะมีการเปลี่ยนแปลงจำนวนมาก และการทำ ESM wrapper บน CJS นั้นง่ายกว่า ผู้เขียนจึงมองว่านี่น่าจะเป็นวิธีที่ดีที่สุดในตอนนี้
ยังไม่มีความคิดเห็น