Hızlı Okuyucu için : Bu QA hakkındadır package.json , bundledDependencies alanında değil ilgili paketin .
BundledDependencies ne işe yarar?
"bundledDependencies" tam olarak adlarının ima ettiği şeydir. Projenizin içinde olması gereken bağımlılıklar. Yani işlevsellik temelde normal bağımlılıklar ile aynıdır. Ayrıca koşarken de paketlenecekler npm pack
.
Ne zaman kullanılmalı
Normal bağımlılıklar genellikle npm kayıt defterinden yüklenir. Bu nedenle, paketlenmiş bağımlılıklar şu durumlarda kullanışlıdır:
- npm kayıt defterinden gelmeyen veya değiştirilmiş bir üçüncü taraf kitaplığını yeniden kullanmak istiyorsanız
- kendi projelerinizi modül olarak yeniden kullanmak istiyorsunuz
- modülünüzle bazı dosyaları dağıtmak istiyorsunuz
Bu şekilde, kendi npm deponuzu oluşturmanız (ve sürdürmeniz) gerekmez, ancak npm paketlerinden elde ettiğiniz faydaların aynısını elde edersiniz.
Ne zaman değil paketlenmiş bağımlılıkları kullanmak
Geliştirme sırasında asıl noktanın yanlışlıkla güncellemeleri önlemek olduğunu düşünmüyorum. Bunun için daha iyi araçlarımız var, yani kod depoları (git, mercurial, svn ...) veya şimdi dosyaları kilitle.
Paket sürümlerinizi sabitlemek için şunları kullanabilirsiniz:
Seçenek1: Düğüm 8 ile birlikte gelen daha yeni NPM sürüm 5'i kullanın. Bir package-lock.json
dosya kullanır ( düğüm bloguna ve düğüm 8 sürümüne bakın)
2. seçenek: Kullanım iplik yerine npm
. Facebook'tan bir paket yöneticisidir, daha hızlıdır npm
ve bir yarn.lock
dosya kullanır . package.json
Aksi takdirde aynı şeyi kullanır .
Bu, Bundler veya Cargo gibi diğer paket yöneticilerindeki kilit dosyalarıyla karşılaştırılabilir. Npm'nin npm-shrinkwrap.json dosyasına benzer, ancak kayıplı değildir ve tekrarlanabilir sonuçlar oluşturur.
npm
aslında bu özelliği yarn
diğer şeylerin yanı sıra kopyaladı .
- Seçenek3: Bu, artık önermediğim daha önce önerilen yaklaşımdı. Fikir
npm shrinkwrap
çoğu zaman kullanmak ve bazen node_module klasörü dahil her şeyi kod deponuza koymaktı. Veya muhtemelen shrinkpack kullanın . O zamanki en iyi uygulamalar node.js blogunda ve joyent geliştirici web sitelerinde tartışıldı .
Ayrıca bakınız
Bu, sorunun kapsamının biraz dışında, ancak son tür bağımlılıklardan (bildiğim) bahsetmek istiyorum: akran bağımlılıkları . Ayrıca, bu bkz İlgili SO soru ve muhtemelen belgeler yarn
üzerinde bundledDependencies .