package.json yapılandırması

Çok sayıda npm paketi içeren bir Node.js uygulaması geliştiriyorsanız, projenizi oluştururken bir veya daha fazla paket güncelleştirildiyse uyarılarla veya hatalarla karşılaşılması sık karşılaşılan bir durum değildir. Bazen bir sürüm çakışması meydana gelir veya bir paket sürümü kullanım dışı bırakılmış olabilir. package.json dosyanızı yapılandırmanıza ve uyarı veya hata gördüğünüzde neler olduğunu anlamanıza yardımcı olacak birkaç hızlı ipucu aşağıda verilmiştir. Bu ,package.json için eksiksiz bir kılavuz değildir ve yalnızca npm paketi sürüm oluşturma işlemine odaklanmıştır.

npm paket sürüm oluşturma sisteminin katı kuralları vardır. Sürüm biçimi şu şekildedir:

[major].[minor].[patch]

Uygulamanızda 5.2.1 sürümüne sahip bir paketiniz olduğunu varsayalım. Ana sürüm 5, ikincil sürüm 2 ve düzeltme eki 1'dir.

  • Ana sürüm güncellemesinde, paket geriye dönük uyumsuz değişiklikler içeren, yani uyumsuzluk yaratan yeni özellikler içerir.
  • İkincil sürüm güncelleştirmesinde, pakete önceki paket sürümleriyle geriye dönük uyumlu yeni özellikler eklendi.
  • Bir düzeltme eki güncelleştirmesinde, bir veya daha fazla hata düzeltmesi eklenmiştir. Hata düzeltmeleri her zaman geriye dönük olarak uyumludur.

Bazı npm paketi özelliklerinin bağımlılıkları olduğunu belirtmek gerekir. Örneğin, webpack ile TypeScript derleyici paketinin (ts-loader) yeni bir özelliğini kullanmak için, webpack npm paketini ve webpack-cli paketini de güncelleştirmeniz gerekebilir.

npm, paket sürümlemesini yönetmeye yardımcı olmak için package.json içinde kullanabileceğiniz çeşitli gösterimleri destekler. Uygulamanızda kabul etmek istediğiniz paket güncelleştirmelerinin türünü denetlemek için bu gösterimi kullanabilirsiniz.

React kullandığınızı ve react vereact-dom npm paketini eklemeniz gerektiğini varsayalım. Bunu package.json dosyanızda çeşitli yollarla belirtebilirsiniz. Örneğin, bir paketin tam sürümünün kullanımını aşağıdaki gibi belirtebilirsiniz.

"dependencies": {
  "react": "16.4.2",
  "react-dom": "16.4.2",
},

Önceki gösterimi kullanarak npm her zaman belirtilen tam sürüm olan 16.4.2'yi alır.

Güncellemeleri yama güncellemeleri (hata düzeltmeleri) ile sınırlamak için özel bir sözdizimini kullanabilirsiniz. Bu örnekte:

"dependencies": {
  "react": "~16.4.2",
  "react-dom": "~16.4.2",
},

npm'ye yalnızca düzeltme eki uygulandığında bir paketi güncelleştirmesini söylemek için tilde (~) karakterini kullanırsınız. Bu nedenle npm react 16.4.2'yi 16.4.3 'e (veya 16.4.4 vb.) güncelleştirebilir, ancak ana veya alt sürüme yönelik bir güncelleştirmeyi kabul etmeyecektir. Bu nedenle, 16.4.2 16.5.0'a güncelleştirilmez.

Npm'nin ikincil sürüm numarasını güncelleştirebileceğini belirtmek için şapka işareti (^) simgesini de kullanabilirsiniz.

"dependencies": {
  "react": "^16.4.2",
  "react-dom": "^16.4.2",
},

Bu gösterimi kullanarak npm react 16.4.2'yi 16.5.0 'a (veya 16.5.1, 16.6.0 vb.) güncelleştirebilir ancak ana sürüme yönelik bir güncelleştirmeyi kabul etmeyecektir. Bu nedenle, 16.4.2 17.0.0'a güncelleştirilmez.

npm paketleri güncelleştirdiğinde, tüm iç içe paketler dahil olmak üzere uygulamanızda kullanılan gerçek npm paketi sürümlerini listeleyen bir package-lock.json dosyası oluşturur. package.json uygulamanız için doğrudan bağımlılıkları denetlerken, iç içe bağımlılıkları (belirli bir npm paketi için gereken diğer npm paketleri) denetlemez. Diğer geliştiricilerin ve test edicilerin iç içe paketler de dahil olmak üzere tam olarak kullandığınız paketleri kullandığından emin olmanız gerekiyorsa geliştirme döngünüzde package-lock.json dosyasını kullanabilirsiniz. Daha fazla bilgi için npm belgelerindeki package-lock.json bakın.

Visual Studio için package-lock.json dosyası projenize eklenmez, ancak bunu proje klasöründe bulabilirsiniz.