Aracılığıyla paylaş


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 sürüm çakışması sonuçları veya paket sürümü kullanım dışı bırakılmıştır. Package.json dosyanızı yapılandırmanıza ve uyarılar veya hatalar 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 tam bir kılavuz değildir ve yalnızca npm paket sürümü oluşturma işlemine odaklanı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üncelleştirmesinde paket geriye dönük uyumsuz, yani hataya neden olan değişiklikler içeren 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ümü oluşturma işlemini yönetmeye yardımcı olmak için package.json dosyasında kullanabileceğiniz çeşitli gösterimi 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 ve react-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üncelleştirmeleri düzeltme eki güncelleştirmeleri (hata düzeltmeleri) ile sınırlamak için özel bir gösterimi 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 de dahil olmak üzere uygulamanızda kullanılan gerçek npm paket 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 dosyasına bakın.

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