NPM / Bower / Composer - farklılıklar?


102

Biri bana arasındaki farkı açıklayabilir NPM, Bowerve Composer.

Hepsi paket yöneticisi - doğru mu?

Ama her biri ne zaman kullanılmalı?

Ayrıca, her birinin kendisine eşlik eden bir json dosyası var gibi görünüyor, bu ihtiyacınız olan tüm paketleri saklıyor mu, böylece cmd hattıyla kurulabilirler mi? Neden bu dosyaya ihtiyacınız var?

Yanıtlar:


192

npmnodejs paket yöneticisidir. Bu nedenle, nodejs ortamlarını hedefler, bu da genellikle sunucu tarafı nodejs projeleri veya komut satırı projeleri anlamına gelir (bower'ın kendisi bir npm paketidir). Nodejs ile bir şey yapacaksanız, npm kullanacaksınız.

bower(ön uç) web projelerini hedefleyen bir paket yöneticisidir. Bower'ı kurmak ve yürütmek için npm ve nodej'lere ihtiyacınız var, ancak bower paketleri özel olarak nodej'ler için değil, daha çok "tarayıcı" ortamı içindir.

composerphp projelerini hedefleyen bir bağımlılık yöneticisidir. Symfony (veya düz eski php) ile bir şey yapıyorsanız, muhtemelen gitmenin yolu budur

Özetle:

  • düğüm yapıyor? npm yapıyorsun
  • php yapıyor mu? besteciyi dene
  • ön uç javascript? çardağı dene

Ve evet, "json" dosyaları temel paket bilgilerini ve bağımlılıkları tanımlar. Ve evet, onlara ihtiyaç var.

Şimdi, README'ler ne olacak? :-)

[güncelleme, dört yıl sonra]

  • bowerkullanımdan kaldırılmıştır ve artık yeni projeler için kullanılmamalıdır. Büyük ölçüde, düğüm bağımlılığı yönetimine dahil edilmiştir (web sitelerinden: "Bower korunurken, ön uç projeleri için İplik ve Webpack veya Parcel kullanmanızı öneririz").
  • yarnTahtadan daha iyi bir şekilde çıktı npm(birkaç npmkusuru gidermek ) ve bu gerçekten kullanmanız gereken şeydir, çünkü ön uç veya düğüm geliştirme yapıyorsanız yeni fiili standart budur. package.jsonNpm ile aynı şeyi tüketir ve neredeyse tamamen uyumludur.
  • Hala canlı ve popüler gibi görünse de composer, bu noktada kullanmazdım (çünkü kullanmazdım php)

6
Php + frontent uygulamaları ne olacak? En iyi seçenek nedir?
sompylasar

14
Çizgiyi nereye çizdiğinize bağlıdır. MVC'niz js'de mi (ve php'niz bir WS'ye düşürülmüş)? O zaman muhtemelen çardak kullanın. MVC'niz php'de mi (örneğin, symfony) ve sunucu tarafı görünümlerinize bağlı bir grup js var mı? O halde besteci muhtemelen en iyi seçiminizdir.
Mangled Deutz

21
En sinir bozucu ve üretkenliği zorlaştıran kısım, bazılarının yalnızca çardak kullandığı kütüphaneler üzerinde çalıştığınız zamandır; bazıları yalnızca composer'ı kullanırken diğerleri yalnızca npm kullanır. Tüm bu paket yöneticilerini tek bir komutla yöneten tek bir paket yöneticisi bulmak güzel olurdu. Başlangıç ​​olarak adlandırılmalı.
Angel S. Moreno

29
Bence @ AngelS.Moreno haklı. Çok fazla dördüncü yapalım. :)
Eric

1
@ AngelS.Moreno haklısınız ve kurulumculara ve bağımlılık yöneticilerine uğramaktan daha ileri gideceğim. Her şeyden çok fazla var. Aynı şeyi yapan çok fazla JS kitaplığı, çok fazla PHP Framework vb. İnsanlar bir şey üzerinde işbirliği içinde çalışabilselerdi, bu çoğumuz için hayatı değiştirirdi.
JG Estiot
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.