Concurrently Nedir? Aynı Anda Birden Fazla Komut Çalıştırma
Concurrently ile npm script'lerini paralel çalıştırın. Renkli loglar, etiketler, --kill-others ve glob desteğiyle full-stack geliştirme akışını tek terminale toplayın.
Concurrently, birden fazla npm script'ini ya da shell komutunu aynı terminalde paralel çalıştıran küçük ama vazgeçilmez bir CLI aracıdır. Frontend, backend ve mock servisleri ayrı terminallerde tutmak yerine tek komutla başlatabilir, etiketli ve renkli logları sayesinde hangi sürecin ne yaptığını net görebilirsiniz. Bu rehberde infografikteki 12 bölümü açarak temel kullanımdan kill-others ve glob pattern'lere kadar her detayı anlatıyoruz.
Concurrently Nedir?
Birden fazla shell komutunu paralel çalıştırmanızı sağlayan Node.js tabanlı bir CLI aracıdır. Frontend ve backend, watcher ve test gibi farklı süreçleri tek terminalde takip etmek için tasarlanmıştır.
Neden Kullanmalı?
Modern projelerde aynı anda birden fazla süreç çalıştırmak çok yaygındır: dev server, mock API, type checker, watcher… Concurrently bu süreçleri tek komutla başlatır ve onboarding'i kolaylaştırır.
- Tek komutla N tane süreç başlatma
- Renkli ve etiketli loglar — hangi log nereden belli
- Geliştirme döneminde zaman tasarrufu
- Fullstack ve mikroservis akışları için ideal
- Geliştirici deneyimini sadeleştirir
Kurulum
Tek satırla projenize ekleyebilirsiniz; genelde dev dependency olarak kurulur.
npm install -D concurrently
# veya
npm install -g concurrently --versionTemel Kullanım
Birden fazla komutu tırnak içinde concurrently'ye geçirmeniz yeterli; her biri paralel başlar.
npx concurrently "npm run dev" "npm run api"package.json Örneği
En yaygın kullanım, kök dev script'in concurrently ile alt komutları başlatmasıdır.
{
"scripts": {
"dev": "concurrently \"npm run client\" \"npm run server\"",
"client": "vite",
"server": "node db.json --port 3001"
}
}Çıktı Davranışı
Concurrently'nin loglarını okumayı kolaylaştıran detaylar:
- Tüm komutlar paralel çalışır
- Loglar etiketli ve renkli olarak ortak terminale yazılır
- exit code'lar ana process'e yansıtılır — CI'da güvenli
- Süreçler kolayca takip edilir
Sık Kullanılan Seçenekler
En çok ihtiyaç duyulan bayraklar ve ne işe yaradıkları:
--names Komutlara isim verir
--prefix-colors Etiket renklerini ayarlar
--kill-others Biri ölünce hepsini kapat
--restart-tries Başarısız komutu yeniden dener
--group Çıktıları gruplandırırSeçeneklerle Örnek
İsim, renk ve kill-others'ı bir arada kullandığınızda terminal çıktınız çok daha okunabilir hale gelir.
npx concurrently \
-n CLIENT,API \
--prefix-colors "cyan.bold,magenta" \
--kill-others \
"npm run client" \
"npm run api"Sıralı Mod
Komutları sırayla çalıştırmak için --sequential bayrağı vardır. Bu, paralel olmaktan ziyade adım adım build/test gibi senaryolar için kullanılır.
npx concurrently --sequential \
"npm run build" \
"npm run start"Kullanım Alanları
Concurrently'nin gerçek hayatta hayat kurtardığı senaryolar:
- Frontend + API server'ı birlikte çalıştırma
- Fullstack geliştirme akışları
- Mikroservis geliştirme ortamları
- Watcher (lint + test) aynı anda
- Docker ya da yerel dev orkestrasyonu
İpuçları
Daha temiz bir setup için:
- Komutları kısa ve okunabilir tutun
- Güvenli kapanış için --kill-others kullanın
- Vite ve JSON Server gibi araçlarla mükemmel uyumludur
- Glob pattern: "npm:dev:*" ile dev: ile başlayan tüm script'leri otomatik dahil edin
Özet
Concurrently, birden fazla komutun yönetimini sadeleştirir, geliştirici akışını hızlandırır ve modern fullstack iş akışları için neredeyse zorunlu bir araçtır. Hafif, hızlı ve kullanımı çok kolaydır — ekibinizin onboarding'ini iyileştirir.
Sıkça Sorulan Sorular
Bu konuda en çok merak edilenler.
Concurrently ile npm-run-all farkı nedir?
İkisi de paralel script çalıştırır; ancak npm-run-all uzun süredir bakımsız, concurrently aktif geliştirilmektedir. Renk/etiket seçenekleri ve kill-others gibi gelişmiş özellikleriyle yeni projelerde concurrently tercih edilir.
CI'da kullanmak güvenli mi?
Evet — özellikle --kill-others-on-fail bayrağıyla. Süreçlerden biri başarısız olduğunda diğerleri durur ve gereksiz CI dakikası harcanmaz; exit code'lar doğru forward edilir.
Windows'ta düzgün çalışıyor mu?
Evet; cross-platform çalışır. && veya & gibi shell operatörlerinden kaçının, bunun yerine concurrently'nin tırnaklı sözdizimini kullanın — POSIX ve Windows shell'lerinde aynı davranış garantili.
Sırayla çalıştırma için ne kullanmalıyım?
concurrently --sequential bayrağını kullanın veya doğrudan && operatörü ile zincirleyin. Karmaşık monorepo akışları için Turborepo veya Nx daha iyi olabilir.
Glob desteği var mı?
Evet. "npm:dev:*" yazarak dev: ile başlayan tüm script'leri otomatik dahil edebilirsiniz; bu, yeni servis eklediğinizde root script'i değiştirmek zorunda kalmamanızı sağlar.
İlgili İçerikler
Bu konuyla bağlantılı diğer infografikler.
- DevOpsTools
Bash Temelleri
Linux/macOS terminalinde her geliştiricinin günlük olarak kullandığı temel Bash komutları — navigasyon, dosya yönetimi, arama ve örnek iş akışları.
- ToolsFrontend
Vite Nedir? Yeni Nesil Frontend Geliştirme Aracı
Vite ile native ESM tabanlı, anında başlayan dev server ve şimşek hızında HMR. Kurulum, plugin sistemi, production build ve Webpack ile karşılaştırma.
- FrontendTools
Zod Nedir? Modern Uygulamalar için Tip-Güvenli Validation
Zod ile TypeScript tipinden runtime validation üretin. Schema tanımlama, parse, safeParse, type inference ve React Hook Form entegrasyonu.
Daha fazla developer infografiği keşfedin
Yeni içerikleri kaçırmamak için ana sayfayı ziyaret edin.
Tüm infografikleri gör