02 / 07
Terminal ve npm
Temel komutlar, Node kurulumu ve paket yönetimi.
Terminal Nedir?
Terminal, programları yazı yazarak çalıştırdığınız metin tabanlı arayüzdür. Teknik olarak terminal, bir shell başlatıp ona bağlanan programdır; komutları yorumlayan shell'dir. Günlük kullanımda iki kelime aynı anlamda kullanılır.1

Frontend geliştirirken terminali her gün açarsınız: paket kurmak, geliştirme sunucusunu başlatmak, build almak ve Git için.2
| Sistem | Ne kullanılır |
|---|---|
| macOS | Uygulamalar/İzlenceler/Terminal |
| Linux | Uygulamalardaki terminal |
| Windows | WSL (Windows Subsystem for Linux); cmd Unix komutlarıyla aynı çalışmaz |
MDN, Windows'ta WSL kurmayı açıkça öneriyor.1 VS Code'un içindeki terminal de iyi bir başlangıçtır; editörden çıkmadan komut çalıştırırsınız.2
Temel Komutlar
| Komut | Ne yapar |
|---|---|
pwd | Şu an hangi klasörde olduğunuzu yazar |
ls | Klasördeki dosyaları listeler (ls -la gizli dosyalarla, ayrıntılı) |
cd proje | proje klasörüne girer |
cd .. | Bir üst klasöre çıkar |
cd ~ | Ev klasörünüze döner |
mkdir proje | Yeni klasör açar |
touch index.html | Boş dosya oluşturur |
cp a.txt b.txt | Kopyalar |
mv a.txt b.txt | Taşır ya da yeniden adlandırır |
rm a.txt | Siler; rm -r klasor klasörü içindekilerle siler |
. bulunduğunuz klasör, .. bir üst klasördür.2 -l gibi tireyle başlayan ekler flag'dir ve komutun davranışını değiştirir; -la gibi birleştirilebilirler.12 Bir komutun nasıl kullanıldığını man ls ya da çoğu araçta --help ile görürsünüz.3
Hata
rm ile silinen dosya çöp kutusuna gitmez, geri getirilemez. rm -r bir klasörü tamamen siler; çalıştırmadan önce hangi klasörde olduğunuzu pwd ile kontrol edin.1
Node.js Kurulumu
Node.js, JavaScript'i tarayıcı dışında çalıştıran bir ortamdır; Chrome'un V8 motorunu kullanır.4 React kodunuz tarayıcıda çalışsa da Vite, Next.js, ESLint ve test araçları Node üzerinde çalışır. Node'u kurduğunuzda npm ve npx de gelir.1
Node'un çift sayılı sürümleri LTS (long-term support) olur. Node.js ekibi, gerçek projelerde yalnızca LTS sürümlerin kullanılmasını önerir. Ekim 2026 itibarıyla LTS sürüm Node 24, en yeni sürüm Node 26'dır. Node 27'den itibaren yılda bir sürüm çıkacak ve her sürüm LTS olacak.5
Node'u doğrudan değil, bir sürüm yöneticisiyle kurmak iyi bir alışkanlıktır: farklı projeler farklı Node sürümleri isteyebilir. macOS, Linux ve WSL'de en yaygını nvm'dir:6
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash
nvm install --lts
node -v
npm -vProje kökündeki .nvmrc dosyasına sürüm yazarsanız (24 gibi), o klasörde nvm use doğru sürüme geçer.6 nvm Windows'ta doğrudan çalışmaz; WSL kullanmıyorsanız nodejs.org'dan LTS kurulum dosyasını indirin.67
npm ve package.json
npm, hem paket yöneticisi hem de JavaScript paketlerinin tutulduğu en yaygın registry'dir. Paket yöneticisi, projenin kullandığı başkalarının yazdığı kodu (dependency) indirir, saklar ve kaldırır.8
Her projenin kökünde bir package.json bulunur. Projenin adını, script'lerini ve bağımlılıklarını tutar:89
{
"name": "virastack",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"dependencies": {
"react": "^19.3.0"
},
"devDependencies": {
"vite": "^8.3.0"
}
}dependencies: Kaynak kodunuzunimportettiği paketler (React gibi).devDependencies: Yalnızca geliştirirken kullanılan araçlar (Vite, ESLint, Vitest gibi).89private: true: Projenin yanlışlıkla npm'e yayınlanmasını engeller.8
Sık kullanılan komutlar
Projedeki tüm paketleri kurmak için proje klasöründe npm install çalıştırın. Yeni bir paket eklemek için:
$ pnpm add reactYalnızca geliştirmede kullanılacak bir araç için -D ekleyin; paket devDependencies'e yazılır:8
$ pnpm add -D vitescripts altındaki bir komutu çalıştırmak için:10
$ pnpm devScript'ler projenin kendi node_modules klasöründeki araçları bulur, bu yüzden Vite'ı ayrıca global kurmanız gerekmez.810 Bir paketi kurmadan tek seferlik çalıştırmak için npx vardır; paket projede yoksa indirmeden önce size sorar.11
Sürüm aralıkları
Paket sürümleri MAJOR.MINOR.PATCH biçimindedir. package.json'daki işaret, npm install çalıştığında hangi güncellemelerin kabul edileceğini belirler:128
| Yazım | Kabul eder | Örnek: 1.0.4 için |
|---|---|---|
~1.0.4 | Yalnızca patch | 1.0.x |
^1.0.4 | Minor ve patch | 1.x.x, ama 2.0.0 değil |
1.0.4 | Yalnızca bu sürüm |
Lockfile ve node_modules
npm install, paketleri node_modules klasörüne indirir ve tam olarak hangi sürümlerin kurulduğunu package-lock.json'a yazar. Lockfile değişmediği sürece herkesin bilgisayarında aynı node_modules oluşur.8
pnpm
pnpm, npm ile aynı package.json'u ve aynı registry'yi kullanan alternatif bir paket yöneticisidir.8 Farkı paketleri saklama biçimidir: her paket sürümünü diskte tek bir yerde tutar ve projelere hard link ile bağlar. On projede aynı React sürümü varsa diskte bir kopyası olur. Ayrıca projenin yalnızca package.json'da yazan paketleri import etmesine izin verir; npm'de ise yazmadığınız bir alt bağımlılığı yanlışlıkla kullanabilirsiniz.1415
ViraStack projeleri pnpm kullanır. Node kuruluysa pnpm'i şu komutla kurabilirsiniz:16
npx get-pnpm| İş | npm | pnpm |
|---|---|---|
| Tüm paketleri kur | npm install | pnpm install |
| Paket ekle | npm install react | pnpm add react |
| Geliştirme aracı ekle | npm install -D vite | pnpm add -D vite |
| Script çalıştır | npm run dev | pnpm dev |
| Tek seferlik çalıştır | npx <paket> | pnpm dlx <paket> |
| Lockfile | package-lock.json | pnpm-lock.yaml |
pnpm'de pnpm dev, pnpm run dev'in kısaltmasıdır; script adı pnpm'in kendi bir komutuyla çakışmadığı sürece çalışır.1718
Uyarı
Bir projede tek paket yöneticisi kullanın. Projede pnpm-lock.yaml varsa npm install değil pnpm install çalıştırın.8
İlk Projeyi Çalıştırmak
Yeni bir React projesi açmak için Vite'ın kurulum aracını çalıştırın. Proje adını ve framework olarak React'i sorar:19
$ pnpm create vite@latestArdından proje klasörüne girip paketleri kurun ve geliştirme sunucusunu başlatın:
cd virastack
pnpm install
pnpm devSayfa http://localhost:5173 adresinde açılır.19 Dosyayı kaydettiğinizde tarayıcı güncellenir. İşiniz bitince terminalde Ctrl + C ile sunucuyu durdurun.2
Paketlere Güvenmek
Paket kurmak, başkasının yazdığı kodu bilgisayarınızda çalıştırmak demektir. Bazı paketler kurulurken kendi script'lerini de çalıştırır. Bu yüzden iki paket yöneticisi de varsayılanlarını sıkılaştırdı:
npm 12 (Temmuz 2026), bağımlılıkların
preinstall,installvepostinstallscript'lerini artık izin vermediğiniz sürece çalıştırmıyor. Güvendiğiniz paketlerinpm approve-scriptsile onaylayıppackage.json'a yazarsınız.20pnpm, bağımlılıkların kurulum script'lerini v10'dan beri çalıştırmıyor; izin verilecek paketler
allowBuildsile listelenir. Ayrıca bir günden yeni yayınlanmış sürümleri varsayılan olarak kurmuyor (minimumReleaseAge).21
İpucu
Kurulumda bir paketin script'inin atlandığını söyleyen bir uyarı görürseniz, paketi tanıyorsanız onaylayın, tanımıyorsanız önce araştırın.
Detaylı Öğrenmek İçin
Terminal, frontend gözüyle: Josh W. Comeau'nun React geliştiricileri için yazdığı terminal rehberi.2
Shell'i baştan sona: MIT'nin Missing Semester dersinin shell bölümü; yolları,
$PATH'i, pipe'ları ve yönlendirmeyi anlatır, videosuyla birlikte.3Paket yönetimi: MDN'in npm ile sıfırdan bir proje kurduğu rehberi.8
Konuşma: Tally Barak'ın
node_modules'un neden böyle olduğunu ve lockfile'ları anlattığı Node Congress 2022 konuşması (9 dk).22Konuşma: pnpm'in yazarı Zoltan Kochan'ın pnpm'in nasıl çalıştığını anlattığı DevOps.js Conf 2022 konuşması (31 dk).15
Kaynaklar
Terminal ve shell farkı, işletim sistemine göre terminal, Windows için WSL önerisi, temel komutlar, Tab, `rm`'in geri alınamaması, npm ve npx'in Node ile gelmesi.
`pwd`, `cd`, `.`, `..`, `~`, flag'ler, Tab, `Ctrl` + `C` ile sunucuyu durdurmak; VS Code terminali ve Windows için WSL.
Yaklaşık 1 saatlik ders ve notları: yollar, `man` ve `--help`, `$PATH`, pipe ve yönlendirme.
Node'un V8 motorunu tarayıcı dışında çalıştıran bir JavaScript ortamı olması.
Sürüm tablosu, gerçek projelerde yalnızca LTS önerisi ve Node 27'den itibaren yıllık sürüm düzeni.
Kurulum komutu, `nvm install --lts`, `.nvmrc` ve Windows desteği.
Resmi kurulum dosyaları; LTS sürüm önceden seçili.
Dependency, `package.json`, `dependencies` ve `devDependencies`, lockfile, `node_modules`'un Git'e girmemesi, script'ler, `^`, pnpm ve tek paket yöneticisi kullanmak.
Alanların resmi tanımı; geliştirme araçlarının `devDependencies`'e yazılması.
`npm run`, `node_modules/.bin`'in script'lerde `PATH`'e eklenmesi, pre ve post script'ler.
Yerel ya da uzaktaki bir paketten komut çalıştırmak; kurmadan önce sorması.
Patch, minor ve major; `~` ve `^` örnekleri.
`npm install`'dan farkları: lockfile zorunlu, uyuşmazlıkta hata, dosyaları değiştirmez.
Tek depo ve hard link ile disk tasarrufu, katı `node_modules` yapısı, hız.
31 dakika. pnpm'in bağımlılıkları nasıl izole ettiği, hard link'ler ve monorepo desteği.
Kurulum yolları ve Node uyumluluk tablosu.
`pnpm add` ve `-D`, `-g` gibi seçenekler.
Script'lerin `pnpm <script>` olarak kısaltılması.
`npm create vite@latest`, React şablonları, Node sürüm gereksinimi ve `localhost:5173`.
npm 12'de bağımlılık kurulum script'lerinin varsayılan olarak kapalı olması ve `npm approve-scripts`.
Kurulum script'lerinin v10'dan beri kapalı olması, `allowBuilds` ve bir günlük `minimumReleaseAge`.
9 dakika. İç içe `node_modules`, hoisting, lockfile'lar ve pnpm'in tek depo yaklaşımı.
Son güncelleme tarihi: 17 Ekim 2026
