İçeriğe atla
devcards.space
ToolsDevOps

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.

6 dakika okuma
Concurrently infografiği: tek komutun frontend, backend ve mock servisleri paralel çalıştırdığını ve renkli etiketli logları gösteren 12 bölümlü genel bakış

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.

bash
npm install -D concurrently

# veya
npm install -g concurrently --version

Temel Kullanım

Birden fazla komutu tırnak içinde concurrently'ye geçirmeniz yeterli; her biri paralel başlar.

bash
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.

package.json
json
{
  "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ı:

bash
--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ır

Seçeneklerle Örnek

İsim, renk ve kill-others'ı bir arada kullandığınızda terminal çıktınız çok daha okunabilir hale gelir.

bash
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.

bash
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.

Bu konuyla bağlantılı diğer infografikler.

Daha fazla developer infografiği keşfedin

Yeni içerikleri kaçırmamak için ana sayfayı ziyaret edin.

Tüm infografikleri gör