ES Modülleri
ECMAScript Modules
- İngilizcesi
- ES Modules
- Okunuşu
- i-es mocuıls
Günlük kullanımda iki ad da yaygın.
Kısaca
ES modülleri, JavaScript'in yerleşik modül sistemidir: her dosya kendi kapsamını korur ve kodu diğer dosyalarla import ve export aracılığıyla paylaşır.
ES modülleri (ES modules) nedir?
Modül, değişkenleri ve fonksiyonları export edilmedikçe kendine saklı kalan bir dosyadır. ES modüllerinde bir dosya paylaştığı şeyleri export ile işaretler, başka bir dosya da bu parçaları import ile alır. Standart, ES6 olarak da bilinen ECMAScript 2015 ile geldi ve bugün bütün modern tarayıcılar ve Node.js onu destekliyor.
ES modüllerinden önce JavaScript'in kendine ait bir modül sistemi yoktu. Tarayıcılar hepsi tek bir global kapsamı paylaşan script'ler yüklüyordu, Node.js ise require() ve module.exports ile CommonJS kullanıyordu. ES modülleri önemli bir noktada ayrılır: import ve export'lar statiktir, en üst düzeyde yazılır; böylece araçlar hiçbir şeyi çalıştırmadan bütün bağımlılık grafiğini görebilir. Bundler'ların kullanılmayan kodu atabilmesi, yani tree shaking, ve geri kalanı parçalara bölebilmesi bu sayededir.
Tarayıcıda bir script <script type="module"> ile modül olur; modül script'leri ertelenerek çalışır ve her zaman strict mode'dadır. Node.js'te bir dosya .mjs ile bitiyorsa ya da en yakın package.json dosyasında "type": "module" yazıyorsa modüldür. Yalnızca gerektiğinde yüklenmesi gereken kod için import() fonksiyonu bir modülü istendiği anda yükler ve bir promise döndürür.
Önemli noktalar
- ES modülleri kodu
exportveimportile paylaşır, geri kalan her şeyi saklı tutar. - Dilin standardının parçasıdır; tarayıcılarda ve Node.js'te çalışır.
- Statik import'lar araçların bağımlılık grafiğini görmesini ve böylece tree shaking yapmasını sağlar.
import()bir modülü yalnızca gerektiğinde yükler.
Örnek
// math.js
export const PI = 3.14159;
export function area(radius) {
return PI * radius ** 2;
}
// app.js
import { area } from "./math.js";
console.log(area(2)); // 12.56636Sık sorulan sorular
ES modülleri ile CommonJS arasındaki fark nedir?
CommonJS, Node.js'in eski modül sistemidir: require() bir modülü kod çalışırken yükler, module.exports da değerleri paylaşır. ES modülleri import ve export kullanır, asenkron yüklenir ve kod çalışmadan önce analiz edilir. Node.js ikisini de destekler; yeni kodda genellikle ES modülleri kullanılır.
Tarayıcı neden "Cannot use import statement outside a module" diyor?
Dosya klasik bir script olarak yüklenmiş. <script> etiketine type="module" ekleyin; Node.js'te dosyayı .mjs uzantısıyla adlandırın ya da package.json içinde "type": "module" ayarlayın.
İlgili sayfalar
- JavaScriptWeb Geliştirme, s. 25JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.
- BundlerWeb Geliştirme, s. 4Bundler, JavaScript modüllerini ve bağımlılıklarını tarayıcıların hızlıca indirip çalıştırabileceği birkaç optimize dosyada birleştiren bir derleme aracıdır.
- Tree ShakingWeb Geliştirme, s. 50Tree shaking, hangi ES modül dışa aktarımlarının gerçekten import edildiğine bakarak hiç kullanılmayan kodu son paketten çıkaran bir derleme optimizasyonudur.
- Code SplittingWeb Geliştirme, s. 6Code splitting, bir web uygulamasının JavaScript'ini istenince yüklenen küçük parçalara bölen tekniktir; böylece ilk sayfa yalnızca gereken kodu indirir.
- Node.jsBackend ve API'ler, s. 31Node.js, JavaScript'i tarayıcı dışında çalıştıran, en çok web sunucuları, API'ler ve komut satırı araçları için kullanılan açık kaynaklı çalışma ortamıdır.
- npmWeb Geliştirme, s. 33npm, Node.js'in varsayılan paket yöneticisi ve dünyanın en büyük yazılım deposudur; bir projenin bağımlılıklarını indirir ve sürümlerini takip eder.
- KütüphaneProgramlamanın Temelleri, s. 35Kütüphane, bir programın sık yapılan işleri o kodu kendisi yazmadan yapmak için çağırdığı, fonksiyon ve sınıf gibi hazır kodlardan oluşan bir koleksiyondur.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin