-Projemin kök dizininde "file.xml" adında bir dosyam olduğunu varsayalım
-Testlerde "test.js" adında bir test dosyam olduğunu ve
const file = fs.readFileSync("../file.xml");
Şimdi node ./tests/test.jsprojemin kökünden çalıştırırsam ../file.xml yok diyor. Aynı komutu testler dizininden çalıştırırsam, o zaman çalışıyor.
Görünüşe göre fs.readFileSync, betiğin gerçekte olduğu yer yerine, betiğin çağrıldığı dizine bağlıdır. Yazdığım Eğer fs.readFileSync("./file.xml")test.js içinde daha kafa karıştırıcı ve bir dosya görecelidir deyimi gerektiren göreli yolları ile tutarlı değil görünürdü.
Bu neden?
Fs.readFileSync dosyamdaki yolları yeniden yazmak zorunda kalmamayı nasıl önleyebilirim?
__dirnamegeçerli çalışma dizini ile aynı olması gerekmez, ancakfs.readFileSync()geçerli çalışma dizinini kullanır. Geçerli çalışma dizini büyük olasılıkla düğümü başlattığınızda olduğu gibi ayarlanmıştır.