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.jsondosya 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 npmve bir yarn.lockdosya kullanır . package.jsonAksi 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.
npmaslında bu özelliği yarndiğ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 .