npm: "0.1" sürümü neden geçersiz?


92

Npm'nin bunu yapmaması için npm uygulamamın sürümünü 0.1'den 0.0.1'e değiştirmek zorunda kaldım.

$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: invalid version: 0.1
npm ERR!     at validVersion (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modul
es/read-package-json/read-json.js:571:40)
npm ERR!     at final (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read
-package-json/read-json.js:323:23)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:139:33
npm ERR!     at cb (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/slide/l
ib/async-map.js:48:11)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:301:48
npm ERR!     at fs.js:207:20
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.3.0
npm ERR! command "/usr/local/Cellar/node/0.10.5/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/lust/Documents/ply/dev-server
npm ERR! node -v v0.10.5
npm ERR! npm -v 1.2.18
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/lust/Documents/ply/dev-server/npm-debug.log
npm ERR! not ok code 0

Tamlık için işte çalışan json

$ cat package.json
{
    "name": "ply",
    "description": "ply server for local dev testing deployments",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
        "express": "3.x"
    }
} 

hata yaptığında sürüm "0.1" idi.

Bu, 3 set sürüm numarası gerektiren bir tür API / ABI uyumluluğu sürüm oluşturma kavramı mı? Hata mesajı neden bu kadar kolay değil?


1
npm versionkomuta bir göz atın . Büyük, küçük veya yama seviyelerine göre anlamsal sürümü artırmanıza olanak tanır. Örnekler: npm version major, npm version minor,npm version patch
Noah

Yanıtlar:


110

Evet, bu, npm paketlerinin kullandığı sürüm oluşturma şeması olan anlamsal sürüm oluşturma için gereklidir . İşte şuradan gelen snippetnpm help json :

Sürüm , bağımlılık olarak npm ile paketlenmiş düğüm- semver tarafından ayrıştırılabilir olmalıdır . ( npm install semverkendiniz kullanmak için.)

Npm'nin semver uygulamasının semver.org'dakinden nasıl saptığı aşağıda açıklanmıştır:

  • Sürümler "v" ile başlayabilir
  • Üç numaralı ana sürümden kısa çizgi ile ayrılan sayısal bir öğe "yapı" numarası olarak yorumlanacak ve sürümü artıracaktır. Ancak etiket, kısa çizgi ile ayrılmış bir sayı değilse, yayın öncesi bir etiket olarak kabul edilir ve etiketi olmayan sürümden daha küçüktür. Yani,0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

37
güzel. Hata sadece "npm anlamsal versiyonlama gerektirir" etkisine bir şey söylemelidir.
Steven Lu

++ etiketli sürümlerin tercih edilen kullanımını not etmek için
Benxamin

@StevenLu Bence bu, şu anda 2.0.0 olan semver versiyonundan da bahsetmeli.
Deoxyseia


4

Yani evet, kısa cevap "Anlamsal versiyonlama kullanmanız gerekiyor"

Ancak bunun arkasındaki mantık, tüm npm kullanıcılarına mantıklı, tek tip bir paket sürümü sağlamaktır. Bir paketin sürüm numarasını alırken , yazarın yarıyılı anladığına ve onu doğru şekilde kullandığına dair bir miktar güven duyarsınız.

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.