CommonJS และ ESM คืออะไร? และต่างกันอย่างไร?
หลายๆ คนมักจะงงๆ และสับสนระหว่างการใช้ import
หรือการใช้ require
ซึ่งจริงๆ มันก็คือการเปรียบเทียบระหว่าง CommonJS และ ESM นั่นเอง
CommonJS คืออะไร?
CommonJS เป็น standard module ที่มาพร้อมกับ Node.js ตั้งแต่เริ่มต้น ตัว CommonJS จะใช้หลักๆ ที่ฝั่ง Server ร่วมกับ Node.js ตัวแปลที่สามารถใช้ใน CommonJS ได้ ก็เช่น dirname
, filename
และก็ NODE_PATH
อะไรพวกนั้น
การ import module จะมีรูปแบบแบบนี้
และส่วนการ export ก็จะเป็นแบบนี้
ไฟล์ package.json
ถ้าเป็น CommonJS เราจะระบุ type
เป็น commonjs
หรือไม่ต้องใส่ (default)
ชื่อไฟล์ จะเป็น .js
ธรรมดา หรือ .cjs
ESM คืออะไร?
ESM หรือ ES Modules หรือ EcmaScript Modules
การ import แบบ ES Modules
การ export ก็จะเป็นแบบนี้
ไฟล์ package.json
ใน ES Modules เราจะต้องระบุ type
เป็น module
แบบนี้
ชื่อไฟล์จะเป็น .mjs
Happy Coding ❤️
- Authors
-
Chai Phonbopit
เป็น Web Dev ในบริษัทแห่งหนึ่ง ทำงานมา 10 ปีกว่าๆ ด้วยภาษาและเทคโนโลยี เช่น JavaScript, Node.js, React, Vue และปัจจุบันกำลังสนใจในเรื่องของ Blockchain และ Crypto กำลังหัดเรียนภาษา Rust