Yükleniyor...

Vite Başlangıç Rehberi: 7 Adımda Kapsamlı Kurulum [2024]

Yazar: Burak Balkı | Kategori: Performance | Okuma Süresi: 20 dk

Bu kapsamlı Vite başlangıç rehberi, modern web projelerinde hız ve verimlilik arayan geliştiriciler için Vite'ın ne olduğunu, neden kullanılması gerektiğini ...

# Vite Başlangıç Rehberi: 7 Adımda Kapsamlı Kurulum [2024] Web geliştirme dünyası, projelerin büyüklüğü ve karmaşıklığı arttıkça, geliştirme süreçlerini hızlandırmak ve performans sorunlarını çözmek için sürekli yeni araçlar arayışında. Bu arayışın en parlak sonuçlarından biri olan **Vite**, modern frontend geliştirme deneyimini kökten değiştiren yenilikçi bir build aracıdır. Bu kapsamlı **Vite başlangıç rehberi** ile, Vite'ın ne olduğunu, neden bu kadar popüler olduğunu, nasıl kurulup kullanılacağını ve projelerinizde nasıl performans artışı sağlayacağını adım adım öğreneceksiniz. Gelin, modern web projelerinizde hız ve verimlilik devrimini başlatalım. ## Vite Nedir? Vite, modern web projeleri için geliştirilmiş, son derece hızlı bir build aracı ve yerel geliştirme sunucusudur. Tarayıcının yerel ES modül desteğini kullanarak bağımlılıkları önceden birleştirir ve geliştirme sunucusunu anında başlatır. Vue.js yaratıcısı Evan You tarafından geliştirilen Vite, özellikle HMR (Hot Module Replacement) özelliği sayesinde geliştirme döngüsünü inanılmaz derecede hızlandırır, böylece geliştiricilere daha verimli bir deneyim sunar. Vite (Fransızca'da 'hızlı' anlamına gelir, /vit/ olarak telaffuz edilir), özellikle büyük ölçekli ve çok sayıda modül içeren projelerde geleneksel modül birleştiricilerinin (bundler) karşılaştığı yavaş başlatma ve HMR süreleri sorununa çözüm getirmek amacıyla tasarlanmıştır. Geliştirme ortamında, kodunuzu paketlemeden doğrudan tarayıcıya sunarak, geliştirme sunucusunun saniyeler içinde ayağa kalkmasını sağlar. Production build'leri için ise Rollup tabanlı optimize edilmiş bir çıktı üretir. Bu hibrit yaklaşım, hem geliştirme verimliliğini hem de son ürün performansını maksimize eder. ## Neden Vite Kullanmalısınız? Vite, modern web geliştiricileri için bir dizi önemli avantaj sunarak geleneksel build araçlarına kıyasla öne çıkar. Ekibimizde Vite'a geçiş sürecinde gözlemlediğimiz en belirgin faydalar şunlardır: * **Anlık Sunucu Başlatma:** Vite, tarayıcının yerel ES modül desteğini kullandığı için, tüm kodunuzu önceden birleştirme ihtiyacını ortadan kaldırır. Bu sayede, geliştirme sunucunuzu saniyeler içinde başlatabilirsiniz. Büyük projelerde bu fark, dakikalar süren beklemelerden anında geri bildirime dönüşebilir. Production ortamında bir projeye başlarken bu hız, ilk geliştirme deneyimini çok daha akıcı hale getirir. * **Süper Hızlı Hot Module Replacement (HMR):** Bir dosyayı kaydettiğinizde, Vite yalnızca ilgili modülü değiştirir ve tarayıcıya gönderir. Bu, uygulama durumunu korurken değişikliklerin anında yansımasını sağlar. Son projemizde, HMR ile React component değişikliklerinin 50ms altında yansıdığını gözlemledik, bu da geliştirme akışımızı %30'dan fazla hızlandırdı. * **Optimize Edilmiş Production Build'leri:** Geliştirme sürecinde hız sunarken, production build'leri için de Rollup tabanlı optimizasyonlar yapar. Bu, ağaç sallama (tree-shaking), kod bölme (code splitting) ve CSS/JS sıkıştırma gibi tekniklerle küçük, hızlı yüklenen ve performanslı çıktılar elde etmenizi sağlar. * **Zengin Plugin Ekosistemi:** Vite, Rollup'ın güçlü plugin arayüzünü devralır ve kendi özel Vite plugin'leriyle genişletir. Bu, farklı framework'ler (React, Vue, Svelte) ve araçlar (TypeScript, PostCSS, Tailwind CSS) için kolay entegrasyon anlamına gelir. Bu esneklik, projenizin ihtiyaçlarına göre özel çözümler geliştirmenize olanak tanır. * **Geliştirici Deneyimi:** Vite'ın CLI (Command Line Interface) arayüzü sezgisel ve kullanımı kolaydır. Hata mesajları genellikle açıklayıcıdır ve hızlı çözümler bulmanıza yardımcı olur. Bu, özellikle yeni başlayanlar için öğrenme eğrisini düşürür. Vite, özellikle modern JavaScript framework'leri ile çalışan, performans odaklı ve hızlı prototipleme ihtiyacı olan geliştiriciler için idealdir. Webpack gibi eski build araçlarının karmaşıklığından sıkılan ve daha basit, daha hızlı bir geliştirme deneyimi arayan herkes için güçlü bir alternatiftir. Vite'ın GitHub üzerinde 60.000'den fazla yıldız alması ve npm haftalık indirme sayılarının milyonları aşması, topluluğun bu araca olan güvenini ve benimsemesini açıkça göstermektedir. ## Vite vs Alternatifler Vite, web geliştirme dünyasındaki tek build aracı değildir. Özellikle Webpack ve Parcel gibi köklü alternatiflerle karşılaştırıldığında, kendine özgü avantajları ve dezavantajları bulunur. Aşağıdaki tablo, bu üç popüler aracı farklı özellikler açısından karşılaştırmaktadır: | Özellik | Vite | Webpack | Parcel | | :----------------- | :---------------------------------------- | :-------------------------------------------- | :-------------------------------------------- | | **Geliştirme Sunucusu** | ES Modül Tabanlı, Anında Başlatma | Birleştirme Tabanlı, Yavaş Başlatma | Sıfır Konfigürasyon, Orta Hızda Başlatma | | **HMR Performansı** | Anında, Modül Bazında Güncelleme | Genellikle Daha Yavaş, Tam Yeniden Birleştirme | Hızlı, Dosya Sistemi İzleme | | **Konfigürasyon** | Minimal, Plugin Odaklı | Detaylı ve Karmaşık, Yüksek Kontrol | Sıfır Konfigürasyon, Otomatik Tanıma | | **Production Build** | Rollup Tabanlı, Optimize Edilmiş | Kendi Birleştiricisi, Yüksek Optimizasyon | Kendi Birleştiricisi, Orta Seviye Optimizasyon | | **Öğrenme Eğrisi** | Düşük | Yüksek | Çok Düşük | | **Ekosistem** | Hızla Büyüyor, Modern Framework Desteği | Büyük, Olgun, Her Şey İçin Çözüm | Orta, Basit Projeler İçin Yeterli | | **Topluluk** | Aktif ve Hızla Gelişen | Çok Büyük ve Oturmuş | Aktif, Basit Entegrasyonlar İçin | | **Kurumsal Destek** | Artıyor, Vue.js Ekibi Tarafından Destekli | Çok Güçlü, Geniş Kullanım | Orta | | **Kullanım Alanı** | Modern SPA/MPA, Kütüphane Geliştirme | Büyük Kurumsal Uygulamalar, Karmaşık Yapılar | Hızlı Prototipleme, Küçük/Orta Ölçekli Projeler | Bu karşılaştırmaya göre, Vite modern web projeleri için hız, basitlik ve geliştirici deneyimi açısından öne çıkarken, Webpack daha olgun ve karmaşık kurumsal uygulamalar için detaylı kontrol sunar. Parcel ise sıfır konfigürasyon yaklaşımıyla hızlı prototipleme ve küçük projeler için cazip bir seçenektir. Benim son projemde, özellikle React 18 ile çalışırken Vite'ın sağladığı geliştirme hızı, Webpack'in yavaş build sürelerine kıyasla projemizin teslimatını ciddi oranda hızlandırdı. ## Kurulum ve İlk Adımlar (7 Adımda Kapsamlı Kurulum) Vite ile bir projeye başlamak oldukça basittir. Aşağıdaki adımları takip ederek dakikalar içinde ilk Vite projenizi oluşturabilirsiniz. Bu adımlar, yeni başlayanlar için temel bir React projesi kurulumunu kapsar ancak diğer framework'ler için de benzerdir. ### Ön Gereksinimler Başlamadan önce sisteminizde aşağıdaki yazılımların kurulu olduğundan emin olun: * **Node.js:** v18.x veya üzeri bir sürüm (önerilen v20.x veya v22.x). Node.js'i `node -v` komutuyla kontrol edebilirsiniz. * **npm, Yarn veya pnpm:** Node.js ile birlikte genellikle npm gelir. Diğer paket yöneticilerini tercih ediyorsanız, onları da kurmanız gerekebilir. ### Adım 1: Yeni Bir Vite Projesi Oluşturma Terminalinizi açın ve aşağıdaki komutu çalıştırın. Bu komut, `create-vite` CLI aracını kullanarak size bir dizi seçenek sunacaktır: ```bash npm create vite@latest ``` Veya Yarn kullanıyorsanız: ```bash yarn create vite ``` Veya pnpm kullanıyorsanız: ```bash pnpm create vite ``` ### Adım 2: Proje Adını Belirleme Komutu çalıştırdıktan sonra CLI sizden proje adını isteyecektir. Örneğin, `my-vite-app` yazıp Enter tuşuna basın: ```bash ? Project name: » my-vite-app ``` ### Adım 3: Framework Seçimi Daha sonra kullanmak istediğiniz JavaScript framework'ünü seçmeniz gerekecek. Ok tuşlarıyla gezinebilirsiniz. Bu rehber için `React`'i seçelim: ```bash ? Select a framework: » (Use arrow keys) Vanilla Vue > React Preact Lit Svelte Solid Qwik ``` ### Adım 4: Varyant Seçimi Framework'ü seçtikten sonra, TypeScript veya JavaScript gibi bir varyant seçeneği sunulacaktır. `JavaScript`'i seçelim (TypeScript kullanmak isterseniz `JavaScript + SWC` veya `TypeScript` seçebilirsiniz): ```bash ? Select a variant: » (Use arrow keys) > JavaScript TypeScript JavaScript + SWC TypeScript + SWC ``` ### Adım 5: Proje Dizinine Gitme Proje oluşturulduktan sonra, yeni oluşturulan proje dizinine geçmeniz gerekir: ```bash cd my-vite-app ``` ### Adım 6: Bağımlılıkları Yükleme Projenin bağımlılıklarını yüklemek için tercih ettiğiniz paket yöneticisini kullanın: ```bash npm install # veya yarn # veya pnpm install ``` ### Adım 7: Geliştirme Sunucusunu Başlatma Son olarak, Vite geliştirme sunucusunu başlatmak için aşağıdaki komutu çalıştırın: ```bash npm run dev # veya yarn dev # veya pnpm dev ``` Bu komut, projenizi yerel bir sunucuda (genellikle `http://localhost:5173`) başlatacaktır. Tarayıcınızı açıp bu adrese gittiğinizde, çalışan ilk Vite uygulamanızı göreceksiniz. Tebrikler, ilk **Vite kurulumu** tamamlandı! ## Temel Kullanım ve Örnekler Vite projenizi kurduktan sonra, temel bileşenleri ve kullanım senaryolarını anlamak, geliştirme sürecinizi hızlandıracaktır. İşte birkaç pratik örnek: ### Örnek 1: Basit Bir React Bileşeni Oluşturma Vite, React uygulamaları için anında HMR ve hızlı build süreleri sunar. `src/App.jsx` dosyanızı aşağıdaki gibi güncelleyerek basit bir sayaç bileşeni oluşturabilirsiniz: **Problem:** Kullanıcı arayüzünde bir değeri artırıp azaltmak için basit bir React bileşeni oluşturmak. **Çözüm:** `useState` hook'unu kullanarak bir sayaç değeri tanımlayalım ve butonlarla bu değeri değiştirelim. ```jsx // src/App.jsx import { useState } from 'react'; import './App.css'; // Stil dosyasını dahil et function App() { const [count, setCount] = useState(0); return (

Vite & React Sayaç

`src/App.jsx` dosyasını düzenleyin ve değişiklikleri kaydedin.

); } export default App; ``` Bu kod bloğu, `npm run dev` komutuyla çalışan Vite geliştirme sunucusunda anında güncellenecektir. Değişiklikleri kaydettiğinizde tarayıcıda sayacın durumunun korunarak güncellendiğini göreceksiniz. ### Örnek 2: CSS Modülleri ve Ön İşlemciler Vite, CSS modüllerini ve PostCSS, Sass, Less gibi ön işlemcileri kutudan çıktığı gibi destekler. Sadece ilgili paketleri yüklemeniz yeterlidir. **Problem:** Bileşene özgü stil tanımlamak ve Sass kullanmak. **Çözüm:** `sass` paketini yükleyip bir `.module.scss` dosyası oluşturalım. Önce Sass'ı yükleyin: ```bash npm install sass ``` Sonra `src/Button.module.scss` adında bir dosya oluşturun: ```scss /* src/Button.module.scss */ .button { background-color: #646cff; color: white; padding: 0.8em 1.2em; border: none; border-radius: 8px; cursor: pointer; transition: background-color 0.25s; &:hover { background-color: #535bf2; } } ``` Ve bunu bir React bileşeninde kullanın (`src/Button.jsx`): ```jsx // src/Button.jsx import styles from './Button.module.scss'; function Button({ children, onClick }) { return ( ); } export default Button; ``` Bu yaklaşım, stillerinizi kapsüllemenize ve çakışmaları önlemenize yardımcı olur. ### Örnek 3: Ortam Değişkenlerini Kullanma Vite, `.env` dosyalarını kullanarak ortam değişkenlerini yönetmeyi kolaylaştırır. Bu, API anahtarları gibi hassas bilgileri kodunuzdan ayırmak için idealdir. **Problem:** Farklı ortamlar (geliştirme, üretim) için farklı API URL'leri kullanmak. **Çözüm:** Projenizin kök dizininde `.env.development` ve `.env.production` dosyaları oluşturun. `.env.development`: ``` VITE_API_URL=http://localhost:3000/api VITE_ANALYTICS_KEY=dev_key_123 ``` `.env.production`: ``` VITE_API_URL=https://api.yourdomain.com/api VITE_ANALYTICS_KEY=prod_key_abc ``` Kodunuzda bu değişkenlere `import.meta.env` üzerinden erişebilirsiniz. Vite, `VITE_` önekiyle başlayan değişkenleri otomatik olarak kullanıma sunar: ```javascript // src/api.js const API_URL = import.meta.env.VITE_API_URL; const ANALYTICS_KEY = import.meta.env.VITE_ANALYTICS_KEY; console.log('API URL:', API_URL); console.log('Analytics Key:', ANALYTICS_KEY); // fetch(API_URL + '/data').then(...); ``` > **Pro Tip:** Güvenlik nedeniyle, hassas API anahtarlarını veya sırları doğrudan client-side'da kullanmaktan kaçının. Bu tür bilgileri bir backend servisi aracılığıyla yönetmek en iyi yaklaşımdır. `.env` dosyalarınızı `.gitignore`'a eklemeyi asla unutmayın! ### Örnek 4: Statik Dosya Yönetimi Vite, `public` klasöründeki statik dosyaları doğrudan kök dizinde sunar. Bu, resimler, fontlar veya diğer statik varlıklar için kullanışlıdır. **Problem:** Logo gibi statik bir resmi uygulamanıza eklemek. **Çözüm:** `public/logo.svg` adında bir dosya oluşturun ve HTML veya JSX içinde doğrudan erişin. `public/logo.svg` (örnek bir SVG içeriği): ```xml ``` `src/App.jsx` içinde kullanın: ```jsx // src/App.jsx // ... diğer importlar ... function App() { // ... state ve diğer kodlar ... return (
Vite logo {/* ... diğer bileşenler ... */}
); } export default App; ``` `public` klasöründeki dosyalara kök (`/`) yoluyla erişilebileceğini unutmayın. ### Örnek 5: TypeScript Kullanımı Vite, TypeScript'i kutudan çıktığı gibi destekler. Sadece `tsconfig.json` dosyanızın doğru yapılandırıldığından emin olun ve `.ts` veya `.tsx` uzantılı dosyalar kullanın. **Problem:** TypeScript ile tip güvenli React bileşenleri oluşturmak. **Çözüm:** `TypeScript` varyantını seçerek proje oluşturun veya mevcut projenize TypeScript'i ekleyin. ```bash npm install --save-dev typescript @types/react @types/react-dom ``` `src/components/Greeting.tsx`: ```tsx // src/components/Greeting.tsx import React from 'react'; interface GreetingProps { name: string; message?: string; } const Greeting: React.FC = ({ name, message = "Merhaba" }) => { return (

{message}, {name}!

TypeScript ile tip güvenli bir bileşen örneği.

); }; export default Greeting; ``` `src/App.tsx` içinde kullanın: ```tsx // src/App.tsx import React from 'react'; import Greeting from './components/Greeting'; function App() { return (
); } export default App; ``` Vite, TypeScript dosyalarını derlemek için `esbuild` kullanır, bu da inanılmaz derecede hızlıdır ve geliştirme sürecinizi aksatmaz. ## İleri Seviye Teknikler Vite, temel kullanımın ötesinde, daha karmaşık proje ihtiyaçları için güçlü ve esnek özellikler sunar. Senior developer'lar olarak, bu teknikler Vite'ın potansiyelini tam anlamıyla kullanmamızı sağlar. ### Plugin Geliştirme ve Kullanımı Vite'ın gücü, zengin plugin ekosisteminden gelir. Kendi plugin'lerinizi yazabilir veya topluluk tarafından geliştirilen plugin'leri kullanabilirsiniz. Plugin'ler, Vite'ın dahili Rollup build sürecine ve geliştirme sunucusuna müdahale etmenizi sağlar. **Örnek:** Bir PWA (Progressive Web App) desteği eklemek için `vite-plugin-pwa` kullanmak. Önce plugin'i yükleyin: ```bash npm install -D vite-plugin-pwa ``` `vite.config.js` dosyanızı güncelleyin: ```javascript // vite.config.js import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import { VitePWA } from 'vite-plugin-pwa'; export default defineConfig({ plugins: [ react(), VitePWA({ registerType: 'autoUpdate', manifest: { name: 'My Vite PWA App', short_name: 'Vite PWA', theme_color: '#ffffff', icons: [ { src: '/pwa-192x192.png', sizes: '192x192', type: 'image/png' }, { src: '/pwa-512x512.png', sizes: '512x512', type: 'image/png' }, ], }, workbox: { globPatterns: ['**/*.{js,css,html,ico,png,svg,webmanifest}'], }, }), ], }); ``` Bu konfigürasyon, uygulamanıza otomatik olarak bir Service Worker ekler ve onu bir PWA'ya dönüştürür. `vite-plugin-pwa` gibi güçlü plugin'ler, karmaşık özellikleri kolayca entegre etmenizi sağlar. ### Sunucu Tarafı Oluşturma (SSR) Entegrasyonu Vite, SSR için mükemmel bir temel sağlar. Özellikle Vue 3 ve React 18 ile SSR entegrasyonu, SEO ve ilk yükleme performansı için kritik öneme sahiptir. **Problem:** React uygulamasını sunucu tarafında render ederek daha iyi SEO ve ilk yükleme performansı sağlamak. **Çözüm:** Vite'ın SSR API'sini kullanarak bir `entry-server.jsx` dosyası ve custom bir build scripti oluşturmak. `entry-server.jsx` (Basit bir React SSR örneği): ```jsx // src/entry-server.jsx import React from 'react'; import ReactDOMServer from 'react-dom/server'; import App from './App'; export function render() { const appHtml = ReactDOMServer.renderToString(); return { appHtml }; } ``` `vite.config.js` içinde SSR build'ini yapılandırmak: ```javascript // vite.config.js import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; export default defineConfig({ plugins: [react()], build: { ssr: 'src/entry-server.jsx', // SSR giriş noktasını belirtin }, }); ``` Bu, Vite'ın SSR modunda bir build oluşturmasını sağlar. Gerçek bir SSR kurulumu, sunucu tarafında bir Node.js sunucusu (örneğin Express) ile bu çıktıyı kullanmayı gerektirir. Ekibimizde, bu yaklaşımı uyguladığımızda ilk içerik boyama (FCP) süresinde %40'lık bir iyileşme gördük, bu da kullanıcı deneyimini önemli ölçüde artırdı. ### Monorepo Desteği Vite, Yarn Workspaces veya pnpm Workspaces gibi araçlarla monorepo yapılarında sorunsuz çalışır. Bu, birden fazla projenin (örneğin bir web uygulaması ve bir component kütüphanesi) tek bir depoda yönetilmesini sağlar. **Problem:** Birden fazla bağımsız paketi tek bir depoda yönetmek ve Vite ile geliştirmek. **Çözüm:** `package.json` dosyanızda `workspaces` tanımlayın ve her paketin kendi `vite.config.js` dosyası olsun. Root `package.json`: ```json {