Node.js'de geleneksel olarak CommonJS modül formatı kullanılmıştır. Ancak, ES2015 (ECMAScript 2015) ile JavaScript diline resmi bir modül sistemi eklenmiştir: ES Modülleri. Bu makalede, Node.js'de ES Modüllerinin nasıl kullanıldığını ve CommonJS ile arasındaki farkları ele alacağız.
ES Modülleri, JavaScript'in standart modül sistemidir. Bu sistem, modül tanımlamalarını ve içe aktarmalarını export
ve import
anahtar kelimeleri ile yapar. ES Modülleri, kodun daha düzenli ve modüler bir şekilde organize edilmesini sağlar.
ES Modüllerinde dosya uzantısı olarak .mjs
kullanılır. İşte bazı temel kullanım örnekleri:
// math-esm.mjs
export default function add(a, b) {
return a + b;
}
// main.mjs
import add from './math-esm.mjs';
console.log(add(5, 5)); // 10
// math-esm.mjs
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;
// main.mjs - Tüm İçe Aktarımları Bir Objede Toplama
import * as math from './math-esm.mjs';
console.log(math.add(5, 5)); // 10
console.log(math.subtract(5, 5)); // 0
// main.mjs - Belirli İçe Aktarımları Seçme
import { add, subtract } from './math-esm.mjs';
console.log(add(5, 5)); // 10
console.log(subtract(5, 5)); // 0
ES Modüllerinde de destructuring kullanarak sadece ihtiyaç duyulan fonksiyonları veya değişkenleri içe aktarabiliriz.
Dosya Uzantısı: ES Modülleri için .mjs
, CommonJS için .js
kullanılır.
Dışa Aktarma: ES Modülleri export
anahtar kelimesini kullanırken, CommonJS module.exports
kullanır.
İçe Aktarma: ES Modülleri import
anahtar kelimesini, CommonJS require()
fonksiyonunu kullanır.
ES Modülleri, Node.js ve modern JavaScript uygulamalarında giderek daha fazla kullanılmaktadır. Bu modül sistemi, JavaScript'in standartlarla uyumlu, daha modüler ve temiz kod yazımını destekler. Ancak, mevcut projelerde hâlâ yaygın olarak CommonJS kullanılmaktadır. Node.js geliştiricileri için her iki modül sistemini de anlamak önemlidir. Bu makalede ES Modülleri'nin temel kullanım örneklerini ve CommonJS ile olan farklarını inceledik. Bu bilgiler, Node.js'de daha etkili modül yönetimi ve kod organizasyonu için önemlidir.