ServBay ile Projeye Özel Node.js Sürümü Yapılandırma Kılavuzu (macOS)
ServBay, geliştiriciler için özel olarak tasarlanmış güçlü bir yerel web geliştirme ortamıdır ve Node.js de dahil olmak üzere birçok programlama dili, veritabanı ve web sunucusunu hepsi bir arada sunarak kolaylaştırır. ServBay’in öne çıkan avantajlarından biri, birden fazla Node.js sürümüne yönelik yerleşik desteği ve esnek yönetim yeteneğidir. Basit bir yapılandırma dosyasıyla, NVM, fnm gibi harici sürüm yöneticilerine veya Docker konteynerlerine ihtiyaç duymadan, her proje için ihtiyaç duyulan Node.js sürümünü kolayca belirtebilir; böylece iş akışınız basitleştirir, global ortam kirliliği ve sürüm çakışmalarını önlersiniz.
Bu yazıda, ServBay’in .servbay.config
dosyasını kullanarak proje bazında Node.js sürüm kontrolünü nasıl uygulayacağınızı detaylı olarak anlatıyoruz.
Neden Node.js Sürüm Yönetimi için ServBay’in .servbay.config
Dosyasını Tercih Etmelisiniz?
Geleneksel Node.js sürüm yönetim yöntemleri, örneğin NVM kullanmak veya manuel kurulumlar, bazı zorluklar getirebilir:
- Global Kirlilik ve Çakışmalar: Sisteme global olarak yüklenen veya global sürüm yöneticileriyle yönetilen farklı Node.js sürümleri, projeler arası bağımlılık çakışmalarına yol açabilir.
- Kurulum ve Derleme Zamanı: Yeni bir sürüm kurmak veya farklı mimariler (ör: x86_64 ve arm64) arasında geçiş yapmak için modüllerin baştan derlenmesi gerekebilir ve bu karmaşık ve zaman alıcı olabilir.
- Docker Konteynerlerinin Ağırlığı: Sadece belirli bir Node.js sürümüne ihtiyaç varsa, tam bir Docker konteyneri kullanmak gereksiz derecede ağır bir çözümdür.
ServBay, çoklu ana akım Node.js sürümünü önyüklü olarak sunar (şu anda v12'den v23'e kadar tüm ana ve minör sürümler desteklenir; “Yazılımlar” bölümünde listeleyip yönetebilirsiniz) ve .servbay.config
dosyasını entegre ederek daha zarif bir çözüm sağlar:
- Anında Geçiş: Sürümler önyüklü olduğu için geçiş neredeyse anlıktır.
- Proje İzolasyonu: Yapılandırma sadece proje dizininde geçerlidir, böylece gerçek anlamda proje seviyesinde sürüm izolasyonu sağlanır.
- Global Kirlilik Yok: Sistem ortam değişkenlerini bozmaz; sisteminizi temiz tutar.
- ServBay ile Entegre: ServBay’in geliştirme ortamına tam entegre şekilde, diğer ServBay yazılımlarıyla (PHP, veri tabanı, web sunucuları vb.) uyumlu çalışır.
Ön Koşullar
Başlamadan önce şunlardan emin olun:
- ServBay’i macOS üzerinde başarıyla kurdunuz ve çalıştırıyorsunuz.
- Projeniz için gerekli Node.js sürümünü ServBay uygulamasının “Yazılımlar” (Packages) listesinden etkinleştirdiniz.
- Belirli bir Node.js sürümüne ihtiyaç duyan bir proje dizininiz var.
Temel Çalışma Prensibi
ServBay’in entegre terminal ortamıyla çalışırken, bulunduğunuz klasörü takip eder. cd
komutuyla bir dizine geçtiğinizde, ServBay mevcut dizinden başlayarak, üst dizinlere doğru .servbay.config
adlı dosyayı arar. Bulduğu ilk dosya (bulunduğunuz dizine en yakın olan), okunur ve konfigürasyonlar bazında mevcut terminal oturumunun ortam değişkenleri (örneğin, PATH
) dinamik olarak ayarlanır; böylece .servbay.config
’te belirttiğiniz Node.js sürümünün kurulum yoluna sistem yönlendirilir.
Bu mekanizma sayesinde, farklı proje dizinlerinde açılan terminal oturumları kendi belirttikleri Node.js sürümünü otomatik olarak yükler – elle geçiş yapmaya gereksinim kalmaz.
Yapılandırma Adımları
Her projeye özgü Node.js sürümünü tanımlamak iki adımda çok kolaydır:
Adım 1: .servbay.config
Dosyasını Oluşturma ve Düzenleme
Proje kök klasörünüzde (genellikle package.json
içeren dizin) .servbay.config
adında yeni bir dosya oluşturun.
Sevdiğiniz metin editörüyle bu dosyayı açın ve aşağıdaki satırları ekleyin:
# Projede kullanılacak ana Node.js sürümünü belirtin
# ServBay, bu ana sürümde zaten yüklü olan en son sürümü otomatik seçecek
NODE_VERSION=20
# İsteğe bağlı: npm veya pnpm için ayna adresini yapılandırarak bağımlılık kurulumunu hızlandırın
# Çin anakarasında bulunuyorsanız, yerel aynalar önerilir
YARN_CONFIG_REGISTRY=https://npmreg.proxy.ustclug.org/
NPM_CONFIG_REGISTRY=https://registry.npmmirror.com
# İsteğe bağlı: npm veya pnpm için önbellek klasörü belirtin
# Önbelliği ServBay'in geçici klasörüne kaydetmek sistem alanını korur ve kullanıcı dizinini temiz tutar
NPM_CONFIG_CACHE=/Applications/ServBay/tmp/npm/cache
2
3
4
5
6
7
8
9
10
11
12
Yapılandırma Açıklamaları:
NODE_VERSION
: Zorunlu. Projenizin gereksinim duyduğu ana Node.js sürümünü belirtir. Örneğin20
olarak ayarlanırsa, ServBay'de yüklü olan en son Node.js 20.x sürümünü kullanılır. Sürümün ServBay’de yüklü olduğundan emin olun.YARN_CONFIG_REGISTRY
/NPM_CONFIG_REGISTRY
: Opsiyonel. Yarn veya npm için paket aynasını ayarlamanıza imkan tanır. Özellikle bağlantı problemlerinde yüklemeleri hızlandırır.NPM_CONFIG_CACHE
: Opsiyonel. npm veya pnpm önbellek klasörünü belirtir./Applications/ServBay/tmp/npm/cache
gibi ServBay’in temp dizinine yerleştirmek, önbelleklerin dağılmasını önler ve yönetimi kolaylaştırır.
.servbay.config
dosyanızı kaydedip kapatın.
Adım 2: ServBay Terminalinde Sürümü Doğrulayın
ServBay ana ekranını açın.
“Terminal” (Terminal) butonuna tıklayarak entegre terminali başlatın.
Terminalde,
cd
komutuyla proje dizininize girin.bashcd /Applications/ServBay/www/your-project-name
1(
/Applications/ServBay/www/your-project-name
yolunu kendi proje yolunuzla değiştirin)Aktif Node.js sürümünü kontrol etmek için
node -v
komutunu çalıştırın.bashnode -v
1Çıktıda,
.servbay.config
’te belirttiğiniz sürüm (ör:v20.x.x
) görünecektir.Ayrıca,
npm -v
(veyapnpm -v
,yarn -v
) komutlarıyla paket yöneticilerinin de doğru sürüme bağlandığını kontrol edebilirsiniz.
Artık bu proje klasörü altından çalıştıracağınız her Node.js ve npm/pnpm/yarn komutu, .servbay.config
dosyasındaki ilgili sürüm ve ayarlarla çalışacaktır.
Çalışma Örneği
Aşağıda, .servbay.config
dosyasının farklı projeler arasında Node.js sürüm geçişini otomatik olarak nasıl sağladığını gösteren basit bir örnek bulunuyor.
Varsayalım iki projeniz var: project-a
Node.js v18’e, project-b
ise Node.js v20’ye ihtiyaç duyuyor.
Proje Klasörleri ve Yapılandırma Dosyası Oluşturma:
bash# ServBay'in www klasöründe örnek proje dizinleri oluşturun mkdir /Applications/ServBay/www/project-a mkdir /Applications/ServBay/www/project-b # project-a için .servbay.config dosyasını oluşturun ve Node.js v18 belirtin echo "NODE_VERSION=18" > /Applications/ServBay/www/project-a/.servbay.config # project-b için .servbay.config dosyasını oluşturun ve Node.js v20 belirtin echo "NODE_VERSION=20" > /Applications/ServBay/www/project-b/.servbay.config
1
2
3
4
5
6
7
8
9ServBay Terminalinde Geçişi Doğrulayın:
ServBay’in entegre terminalini açın ve şu komutları çalıştırın:
bash# project-a klasörüne girin cd /Applications/ServBay/www/project-a # Node.js sürümünü kontrol edin node -v # Beklenen çıktı: v18.x.x # project-b klasörüne geçin cd ../project-b # Node.js sürümünü kontrol edin node -v # Beklenen çıktı: v20.x.x # Tekrar project-a klasörüne dönün cd ../project-a # Node.js sürümünü kontrol edin node -v # Beklenen çıktı: v18.x.x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Bu örnekten göreceğiniz üzere, çalışma klasörünüz değiştikçe ServBay, o dizine en yakın .servbay.config
dosyasındaki NODE_VERSION
yapılandırmasını otomatik uygular ve Node.js sürüm geçişini siz fark bile etmeden yönetir.
Aşağıdaki görsel, farklı proje klasörleri arasında gezinirken Node.js sürümünün .servbay.config
dosyasına göre nasıl değiştiğini göstermektedir (resim örnektir, gerçek arayüz değişiklik gösterebilir):
Dikkat Edilmesi Gerekenler
.servbay.config
dosyasını proje klasörünüze veya üst klasörlerden birine yerleştirmelisiniz. ServBay, yukarı doğru arama yapar ve ilk bulduğu.servbay.config
dosyasını kullanır (size en yakın olan).- Ya ServBay’in entegre terminalinde çalışın, ya da ServBay ortam değişkenlerini doğru şekilde miras alan harici bir terminalde işlem yapın.
NODE_VERSION
değerinin ServBay’de yüklü ve etkin bir sürüm olduğundan emin olun. Aksi halde ServBay varsayılan sürüme dönebilir veya Node.js komutunu bulamayabilir..servbay.config
'teki konfigürasyonlar sadece geçerli terminal oturumu ve alt süreçlerde geçerlidir; sistem genelini veya ServBay dışı işlemleri etkilemez.
Sıkça Sorulan Sorular (SSS)
S: Eğer proje klasörümde .servbay.config
dosyası yoksa ne olur?
C: Eğer ServBay, geçerli klasörde veya üst klasörlerinde .servbay.config
bulamazsa, global ServBay ayarını veya varsayılan Node.js sürümünü kullanır (genelde “varsayılan” olarak işaretlediğiniz sürüm).
S: ServBay hangi Node.js sürümlerini destekliyor, nasıl görebilirim?
C: ServBay ana uygulamasını açın, sol menüden “Yazılımlar” (Packages) bölümüne girin. Burada yüklü ve mevcut tüm yazılım paketlerini, Node.js'in farklı sürümleri dahil görebilir, etkinleştirip devre dışı bırakabilirsiniz.
S: .servbay.config
'teki ayarlar tüm sistemimi etkiler mi?
C: Hayır, yapılandırmalar sadece geçici olarak ServBay terminal oturumunda veya ServBay ortam değişkenleriyle başlatılan işlemlerde etkili olur. Sisteminizin genel ortamını etkilemez, ServBay dışındaki uygulamalar da bu değişikliklerden etkilenmez. Proje izolasyonunu sağlayan temel sistem budur.
S: .servbay.config
'te NODE_VERSION
dışında başka ServBay ile alakalı ayarlar tanımlayabilir miyim?
C: Evet, .servbay.config
dosyası, ServBay tarafından sağlanan proje düzeyinde ortam değişkenleri tanımlama mekanizmasıdır. Node.js dışında da, çalıştırılan komutlarda geçerli olacak başka ortam değişkenleri ayarlayabilirsiniz. Desteklenen anahtarlar ServBay sürümüne göre değişebilir, fakat temel işlevi ortam değişkeni tanımlamaktır.
Özet
ServBay’in .servbay.config
dosyasını kullanarak, her yerel geliştirme projesi için bağımsız Node.js sürümünü kolayca belirtebilir ve yönetebilirsiniz. Bu yaklaşım, klasik sürüm yöneticilere veya Docker benzeri çözümlere göre çok daha hafif, pratik ve ServBay’in entegre ortamına mükemmel uyumludur. Daha istikrarlı ve işbirliğine uygun bir geliştirme süreç akışı için projelerinizde hemen .servbay.config
kullanımına geçin, ServBay’in size sunduğu verimliliği deneyimleyin!