Node.js Sorun Giderme
Bu doküman, ServBay yerel geliştirme ortamında Node.js paketlerini kullanırken karşılaşabileceğiniz bazı yaygın sorunları çözmenize yardımcı olmayı amaçlamaktadır.
Node.js/npm/pnpm/yarn Komutunun Sürümü Bulunamıyor veya Yok
ServBay’de Node.js, npm, pnpm ya da yarn kullanırken aşağıdakine benzer bir hata mesajı alırsanız, sistemin kullanmak istediğiniz belirli sürüm Node.js çalıştırılabilir dosyasını bulamadığını gösterir:
bash
Warning: Specified Node.js version '22' for 'node' not found.
If this is not your intention, please delete the 'NODE_VERSION' configuration
from the '.servbay.config' file in the current directory.
1
2
3
2
3
Bu genellikle, kullanmak istediğiniz belirli Node.js sürümünün ServBay’e henüz yüklenmemiş olmasından, ya da nvm
veya homebrew
gibi araçlarla kurduğunuz Node.js sürümlerini kullanmak istemenize rağmen, ortam yapılandırma sorunları nedeniyle ServBay’in bunları doğru şekilde bulamamasından kaynaklanır.
İpucu
ServBay’i yükledikten sonra, sistem, Node.js paketlerinde ServBay’in kurduklarını öncelikli olarak kullanacak şekilde script kısaltmaları ayarlar. Belirtilen sürüm ServBay’de mevcut değilse, önce nvm
ile kurulan varsayılan sürüme, ardından homebrew
ile kurulu Node.js sürümüne geçiş dener. Bu konumların hiçbirinde sürüm bulunamazsa yukarıdaki hata raporlanır.
Nedenler:
- Kullanmak istediğiniz Node.js sürümü ServBay uygulamasına kurulu değil.
- Sistemde
nvm
veyahomebrew
yüklü ve bu araçlarla kurulan Node.js sürümünü kullanmak istiyorsunuz, ancak shell ortam yapılandırması (özelliklePATH
veyaNVM_BIN
ortam değişkeni) yanlış olduğundan ServBay’in yedek mekanizması bu harici kurulumları bulamıyor.
Çözüm:
nvm
yüklü olmasına ve Node.js sürümünü bununla kurmuş olmanıza rağmen hâlâ bu hatayı alıyorsanız, yaygın nedenlerden biri shell ortam yapılandırmanızda NVM_BIN
ortam değişkeninin eksik veya hatalı olmasıdır. nvm
kurulumunda bu değişken otomatik olarak ayarlanır ve bu da nvm
ile kurulan Node.js yürütülebilirlerinin yolunu gösterir. nvm
’in düzgün çalışması için bu değişkenin doğru olması gereklidir.
Yapmanız gereken, shell konfigürasyon dosyalarınızı (örn. ~/.zshrc
, ~/.bash_profile
gibi) kontrol ederek nvm
ile ilgili ayarların olduğundan ve NVM_BIN
değişkeninin doğru şekilde ayarlanıp dışa aktarıldığından emin olmanızdır. Sonrasında konfigürasyonu yeniden yükleyin (ör. source ~/.zshrc
ya da terminali yeniden başlatın). Düzelttikten sonra ServBay’in yedekleme mekanizması, nvm
tarafından yönetilen Node.js sürümünü doğru şekilde bulabilmelidir.
Eğer nvm
veya homebrew
kullanmıyor ya da doğrudan ServBay’in yönettiği Node.js sürümlerini tercih ediyorsanız, kullanmak istediğiniz Node.js sürümünün ServBay uygulamasındaki “Paketler” arayüzünden kurulu olduğuna emin olun.
node-sass
Gibi npm Paketleri Kullanırken Mimari Desteklenmiyor Hatası Almak
Apple Silicon (M1/M2/M3/M4 ve benzeri Arm64 mimarisine sahip) Mac kullanıcıları, bazı eski veya yerel modüllere bağımlı npm paketlerini (örneğin node-sass
) kullanırken, Unsupported architecture (arm64)
gibi hatalarla karşılaşabilirler. Bunun nedeni, bu eski paketlerin yalnızca x86_64 mimarisi için hazır binary’ler veya derleme yapılandırmaları içermesidir.
bash
ERROR: Module Error (from ./node_modules/sass-loader/dist/cjs.js):
Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64) with Node.js 14.x
For more information on which environments are supported
please see:
https://github.com/sass/node-sass/releases/tag/v4.14.1
1
2
3
4
5
2
3
4
5
Neden:
Bazı npm paketleri, derlenmesi gereken C++ veya başka yerel kodlar içerir. Bu kodların ilgili işlemci mimarisi için derlenmiş olması gerekir. Eski sürümler, Arm64 mimarisi (Apple Silicon gibi) için hazır sürüm veya destek sunmaz.
Çözüm:
Modern ve Arm64 destekli alternatiflere geçin (Önerilen Yöntem)
En iyi çözüm, Arm64 desteği olan modern paketlere geçmektir. Örneğin, artık aktif olarak geliştirilmediği ve sınırlı özelliklere sahip olduğu için
node-sass
yerine daha güçlü ve bakımı sürensass
paketine geçmek önerilir. Güncel frontend projeleri ve araç zincirleri de çoğunluklasass
’a geçiş yapmıştır.bashnpm uninstall node-sass npm install --save-dev sass
1
2ServBay’de x86_64 mimarisine sahip Node.js’i yükleyip Rosetta 2 ile çalıştırmak (Önerilmez)
ServBay,
x86_64
mimarisi için Node.js paketlerini yüklemenize de olanak tanır. Apple Silicon Mac’lerde bu, Node.js’in ve onun ihtiyaç duyduğux86_64
yerel modüllerin macOS’un dahili Rosetta 2 çeviri katmanıyla çalışmasını sağlar. Gereklix86_64
Node.js sürümünü ServBay’deki “Paketler” arayüzünden yükleyebilirsiniz.Dikkat: Bu yöntem, uzun vadeli bir çözüm olarak önerilmez, çünkü Rosetta 2 emülasyonu üzerine kurulu olduğundan performans kayıpları ve Arm64’a özgü uyumluluk sorunları yaşanabilir. Birinci yöntemi öncelikli olarak değerlendirin.