Dark mode
ESM Modules
ESM (ECMAScript Modules) คือมาตรฐานการ import/export module แบบใหม่ใน JavaScript และ Node.js
ข้อดี
- import/export แบบ native
- รองรับ tree-shaking
- ใช้งานกับ TypeScript ได้ดี
- เหมาะกับโค้ดที่ต้องการความทันสมัยและ interoperable
ตัวอย่างการใช้งาน
ts
// utils.ts
export function sum(a: number, b: number): number {
return a + b
}
export const PI = 3.14159
ts
// main.ts
import { sum, PI } from './utils.js'
console.log(sum(2, 3)) // 5
console.log(PI) // 3.14159
การ import built-in modules (Node.js) แบบ ESM
ts
import { readFile } from 'node:fs/promises'
const data = await readFile('example.txt', 'utf8')
console.log(data)
CommonJS Modules
CommonJS (CJS) เป็นรูปแบบ module ดั้งเดิมของ Node.js (ใช้ในไฟล์ .js หรือ .cjs) เหมาะกับโค้ด legacy หรือเมื่อต้องการ compatibility กับแพ็กเกจเก่า
ตัวอย่างการใช้งาน
js
// utils.cjs
function sum(a, b) {
return a + b
}
const PI = 3.14159
module.exports = { sum, PI }
js
// main.cjs
const { sum, PI } = require('./utils.cjs')
console.log(sum(2, 3)) // 5
console.log(PI) // 3.14159
สรุป
- ถ้าเริ่มโปรเจกต์ใหม่ แนะนำใช้ ESM + TypeScript
- ถ้าใช้ไลบรารีเก่า หรือมีโค้ด legacy อาจต้องใช้ CommonJS