Webpack Nedir? Ne işe Yarar?
Webpack, ön yüz geliştiricileri tarafından yürütülen çalışmaları tek bir javascript dosyasında toparlayan NodeJS tabanlı paketleyicidir. Büyük boyutlu dosyaları, paketleri derler, minimize eder. Kısaca, bir modül paketleyicidir.
Webpack nasıl çalışıyor?
Hangi dosyanın projeye girip çıktığını yönetmek için bir kılavuza ihtiyaç duyar.
Entry: Çalışmaya başlamadan önce ihtiyaç duyduğu giriş dosyalarının tanımlandığı alandır. Projede kullanılan Dependency’leri yani bağımlılıkları gösterir ve yüklenmesi gereken Package’lerin proje yolunu tutar.
entry: { index: ‘./src/index.js’ }
Output: Girdilerleri alıp okuyup işledikten sonra bir çıktı dosyası oluşturmak için (genelde build/dist gibi isimler verilir) kullanılan alandır.
output: { filename: 'bundle.js', path: '/dist' }
Loaders: Projenin bağımlılıkları arasına dahil edilen JSON ve JS hariç diğer dosya türlerini de işleyebilmek için modüler hale dönüştürür.
Plugins: Loaders’ların yeterli gelmediği bazı işlerde kullanılır. Asset management(dosya yönetimi), bundle minimization(dosya küçültme işlemi), optimizasyon gibi birçok görevi yerine getirebilir.
Mode: Kaynak kodunun amacına yönelik aşamayı tanımlar. Üç ana aşama mevcuttur: None, Development ve Production.
Production modu kodun optimize edilmiş halini, development modu geliştirme yaparken kullandığımız optimize edilmemiş halini işaret eder.
Browser Compatibility: Webpack tarafından desteklenmeyen browser’larda yürütülecek işlemler tanımlanır.
Webpack ile Yeni Bir proje Yaratmak
Örnek bir proje dizini oluşturup dizin içerisine erişiyoruz.
mkdir ProjeAdi cd ProjeAdi
Bağımlılıkları içeren kılavuz dosya package.json
dosyasını oluşturmak için
npm init -y
Webpack yüklemek için
npm install — save-dev webpack webpack-cli
webpack.config.js
dosyasında girdi klasörü olarak src
, çıktı olarak ise dist
ayarlıyoruz.
module.exports = { entry: { index: './src/index.js' }, output: { filename: 'bundle.[chunkhash].js', // chunckhash -> webpack çalıştığında ortaya çıkacak olan dosyanın her seferinde farklı bir hash id ile çıkmasını sağlamaktadır. path: __dirname + '/dist' // dist klasörü altında directory name ile dosyaların oluşmasını sağlamaktadır. } }
Komut yorumlayıcısını proje klasörüne getirip aşağıdaki komut çalıştırıldığında index.js
dosyası derlenip dist klasörüne main.js
olarak kaydetmek için
webpack
Webpack ile React projesi geliştirmek
Bunun için babel present’inde yüklenmesi gerekir. Bunun için
npm install @babel/preset-react --save-dev
babel.config.json
dosyası içerisinde aşağıdaki gibi babel’i yapılandırabilirsiniz.
{ "presets": ["@babel/preset-env", "@babel/preset-react"] }
React’ın çalışabilmesi için react
ve react-dom
kütüphanelerini de eklenmelidir.
npm install react react-dom
Akademisyen, kullanıcı deneyimi ve arayüz tasarımı, veri görselleştirme, web/mobil uygulama geliştirme.
Kemal ŞAHİN'i yakından tanıyın.