kaçınmak ../../../../../../ ..
Bir uygulamadaki her şey genel npm'ye ait değildir ve özel bir npm veya git repo kurma yükü çoğu durumda hala oldukça büyüktür. İşte ../../../../../../../
göreli yollar probleminden kaçınmak için bazı yaklaşımlar
.
node_modules
İnsanlar bazen uygulamaya özgü modülleri node_modules'e koymaya itiraz ederler, çünkü npm'den üçüncü taraf modüllerini de kontrol etmeden dahili modüllerinizi nasıl kontrol edeceğiniz açık değildir.
Cevap oldukça basit! .gitignore
Yok sayılan bir dosyanız varsa node_modules
:
node_modules
!
Dahili uygulama modüllerinizin her biri için bir istisna ekleyebilirsiniz :
node_modules/*
!node_modules/foo
!node_modules/bar
Üst öğe yoksayılmışsa, bir alt dizinin işaretini kaldıramayacağınızı lütfen unutmayın . Bu nedenle, yoksaymak yerine, içeridekinode_modules
her dizini hile ile
yok saymanız gerekir ve daha sonra istisnalarınızı ekleyebilirsiniz. node_modules
node_modules/*
Şimdi her yerde uygulamanızda size mümkün olacak require('foo')
ya require('bar')
çok büyük ve kırılgan göreli yolu kalmadan.
Çok fazla modülünüz varsa ve bunları npm tarafından yüklenen üçüncü taraf modüllerden daha ayrı tutmak istiyorsanız, hepsini aşağıdaki node_modules
gibi bir dizinin altına koyabilirsiniz node_modules/app
:
node_modules/app/foo
node_modules/app/bar
Artık
uygulamanızın herhangi bir yerine require('app/foo')
veya require('app/bar')
herhangi bir yerden erişebileceksiniz.
Bölümünde .gitignore
, aşağıdakiler için bir istisna ekleyin node_modules/app
:
node_modules/*
!node_modules/app
Başvurunuz dönüşümleri package.json yapılandırılan olsaydı, sen kendi dönüşümü alanında ayrı bir package.json oluşturmanız gerekir sizin node_modules/foo
veyanode_modules/app/foo
modül sınırları boyunca geçerli olmadığından bileşen dizininizde . Bu, modüllerinizi uygulamanızdaki yapılandırma değişikliklerine karşı daha sağlam hale getirecek ve paketleri uygulamanız dışında bağımsız olarak yeniden kullanmak daha kolay olacaktır.
Sembolik bağ
Symlinks yapabileceğiniz ve pencereleri desteklemeniz gerekmeyen bir uygulama üzerinde çalışıyorsanız başka bir kullanışlı hile, bir lib/
veya app/
klasörü symlink etmektir node_modules
. Proje kökünden şunları yapın:
ln -s ../lib node_modules/app
ve şimdi projenizde her yerde sizi dosyaları gerektiren mümkün olacak lib/
yaparak require('app/foo.js')
almaklib/foo.js
.
özel yollar
Bazı yerlerin $NODE_PATH
ortam değişkenini kullanma hakkında konuştuğunu veya opts.paths
düğüm ve dizin bulmak için dizinler eklemek üzere dizinler eklemeyi görebilirsiniz.
Diğer birçok platformdan farklı $NODE_PATH
olarak, düğüm dizinlerinde kabuk stili bir dizin dizisi kullanmak, node_modules
dizinde etkili bir şekilde kullanılmaya kıyasla düğümde uygun değildir .
Bunun nedeni, uygulamanızın bir çalışma zamanı ortam yapılandırmasına daha sıkı bağlanmasıdır, bu nedenle daha fazla hareketli parça vardır ve uygulamanız yalnızca ortamınız doğru bir şekilde kurulduğunda çalışır.
node ve browserify her ikisi de kullanımını destekler, ancak kullanımını engeller
$NODE_PATH
.