Yeni başlayanlar için daha iyi bir genel bakış sunmaya çalışıyorum.
npm tarihsel olarak (2010) JavaScript için en popüler paket yöneticisi olmuştur. Projenizin bağımlılıklarını yönetmek için kullanmak istiyorsanız, aşağıdaki komutu yazabilirsiniz:
npm init
Bu bir package.json
dosya oluşturacaktır . Projenin tüm bağımlılıklarını içerir.
Sonra
npm install
bir dizin oluşturur node_modules
ve içindeki bağımlılıkları ( package.json
dosyaya eklediğiniz ) indirir .
Ayrıca bir package-lock.json
dosya oluşturacaktır . Bu dosya, oluşturulan bağımlılıklar ağacını tanımlamak için kullanılır. Geliştiricilerin aynı bağımlılıkları kurmasına izin verir. Örneğin, bir geliştiricinin bir bağımlılığı v2'ye ve ardından v3'e yükseltirken bir başkasının doğrudan v3'e yükselttiğini hayal edebilirsiniz.
npm, bağımlılıkları belirleyici olmayan bir şekilde yükler; bu, iki geliştiricinin farklı davranışlaranode_modules
neden olan farklı bir dizine sahip olabileceği anlamına gelir . ** npm, Şubat 2018'de olduğu gibi kötü bir şöhrete sahipti: 5.7.0 sürümünde, Linux sistemlerinde sudo npm çalıştırmanın, sistem dosyalarının sahipliğini değiştirerek işletim sistemini kalıcı olarak bozacağı bir sorun keşfedildi.
Bu sorunları ve diğerlerini gidermek için, Facebook yeni bir paket yöneticisini tanıtıldı : (2016) İplik bir hızlı, daha güvenli ve daha güvenilir JavaScript için yöneticisini paket.
Aşağıdakini yazarak bir projeye İplik ekleyebilirsiniz :
yarn init
Bu bir package.json
dosya oluşturacaktır . Ardından, bağımlılıkları şu şekilde yükleyin:
yarn install
Bir klasör node_modules
oluşturulacak. İplik ayrıca adında bir dosya oluşturacaktır yarn.lock
. Bu dosya ile aynı amaca hizmet eder, package-lock.json
ancak bunun yerine deterministik ve güvenilir bir algoritma kullanılarak oluşturulur, böylece tutarlı yapılara yol açar.
Birlikte bir proje başladıysanız NPM , aslında göç edebilir İplik kolayca. iplik aynı tüketir package.json
. Daha fazla ayrıntı için bkz . Npm'den geçiş .
Ancak, npm her yeni sürümler ile geliştirildi ve bazı projeler halen kullandığı UÖM'sini üzerinde iplik .