Örneğin, bir Grunt eklentisi neden homurdanmaya bağımlılığını " akran bağımlılıkları " olarak tanımlar ?
Eklenti neden Grunt'u grunt-plug / node_modules'e kendi bağımlılığı olarak alamıyor ?
Akran bağımlılıkları burada açıklanmaktadır: https://nodejs.org/en/blog/npm/peer-dependencies/
Ama gerçekten anlamıyorum.
Misal
Şu anda yerel bir cihazda sunulacak bir / dist / klasörüne kaynak dosyalarımı oluşturmak için Grunt görevlerini kullanan AppGyver Steroids ile çalışıyorum. Ben npm ve grunt oldukça yeniyim, bu yüzden neler olup bittiğini tam olarak anlamak istiyorum.
Şimdiye kadar bunu alıyorum:
[rootfolder] /package.json , npm'ye grunt-steroids
geliştirme için npm paketine bağlı olduğunu söyler :
"devDependencies": {
"grunt-steroids": "0.x"
},
Tamam. [Rootfolder] 'da npm kurulumunu çalıştırmak bağımlılığı algılar ve [rootfolder] / node_modules / grunt-steroid'lerine homurdanma steroidleri kurar .
Npm sonra kendi bağımlılıklarını yükleyebilir böylece [rootfolder] /node_modules/grunt-steroids/package.json okur . grunt-steroids
:
"devDependencies": {
"grunt-contrib-nodeunit": "0.3.0",
"grunt": "0.4.4"
},
"dependencies": {
"wrench": "1.5.4",
"chalk": "0.3.0",
"xml2js": "0.4.1",
"lodash": "2.4.1"
},
"peerDependencies": {
"grunt": "0.4.4",
"grunt-contrib-copy": "0.5.0",
"grunt-contrib-clean": "0.5.0",
"grunt-contrib-concat": "0.4.0",
"grunt-contrib-coffee": "0.10.1",
"grunt-contrib-sass": "0.7.3",
"grunt-extend-config": "0.9.2"
},
" Bağımlılıklar " paketleri benim için mantıklı olan [rootfolder] / node_modules / grunt-steroids / node_modules içine kurulur .
" DevDependencies " yüklü değil, eminim sadece kullanmaya çalışıyorum grunt-steroids
ve üzerinde geliştirmek değil npm tespit tarafından kontrol edilir .
Ama sonra " peerDependencies " var.
Bunlar [rootfolder] / node_modules içine kuruludur ve [rootfolder] / node_modules / grunt-steroids / node_modules içinde neden bulunmadığını ve diğer homurdanma eklentileriyle (ya da her neyse) çatışmaların önlenmesini neden anlamıyorum ?
"grunt": "0.4.4"
devDependencies ve peerDependencies hem olduğunu ve bunun Buna ihtiyacım olduğunu hem gelir, çünkü orada yinelenen bir örneği bana mantıklı mıgrunt
değil aynı zamanda o, benim kendi kullanımı için paket kullanıcıları benim peerDependencies sürüm kilidine saygı duyduğu sürece kütüphane kendi sürümlerini kullanabilir. Bu doğru mu? Yoksa OP örneği çok kötü mü?