npm: एक संस्करण "0.1" अमान्य क्यों है?


92

ऐसा न करने के लिए मुझे अपने npm ऐप के संस्करण को 0.1 से 0.0.1 तक बदलना पड़ा।

$ 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

पूर्णता के लिए यहां काम करने वाला जशन है

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

संस्करण "0.1" हुआ करता था जब यह त्रुटि करता था।

क्या यह एपीआई / एबीआई संगतता संस्करण संस्करण के 3 सेटों की आवश्यकता के अनुरूप संस्करण है? त्रुटि संदेश अधिक मैत्रीपूर्ण क्यों नहीं है?


1
npm versionकमांड पर एक नज़र डालें । यह आपको प्रमुख, लघु या पैच स्तरों के आधार पर सिमेंटिक संस्करण को बढ़ाने की अनुमति देता है। उदाहरण: npm version major, npm version minor,npm version patch
नूह

जवाबों:


110

हां, यह सिमेंटिक वर्जनिंग के लिए आवश्यक है , जो कि वर्जनिंग स्कीम npm संकुल का उपयोग है। यहाँ से स्निपेट हैnpm help json :

संस्करण नोड- सेवर द्वारा पार्स करने योग्य होना चाहिए , जो एक निर्भरता के रूप में एनपीएम के साथ बंडल है। ( npm install semverइसे स्वयं उपयोग करने के लिए।)

यहाँ बताया गया है कि कैसे npm का सेमर कार्यान्वयन semver.org पर होता है।

  • संस्करण "v" से शुरू हो सकते हैं
  • हाइफ़न द्वारा मुख्य तीन-नंबर संस्करण से अलग किए गए एक संख्यात्मक आइटम को "बिल्ड" नंबर के रूप में व्याख्या की जाएगी, और संस्करण में वृद्धि होगी। लेकिन, यदि टैग एक हाइफ़न द्वारा अलग की गई संख्या नहीं है, तो इसे पूर्व-रिलीज़ टैग के रूप में माना जाता है, और बिना टैग के संस्करण से कम है। इसलिए,0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

37
ठंडा। त्रुटि को "npm के लिए अर्थ वर्जनिंग की आवश्यकता है" के प्रभाव से कुछ कहना चाहिए।
स्टीवन लू

++ टैग-रिलीज़ की पसंदीदा हैंडलिंग के लिए ++
बेन्क्सामिन

@StevenLu मुझे लगता है कि इसका उपयोग करने वाले वीर्य के संस्करण का भी उल्लेख करना चाहिए, वर्तमान में 2.0.0 है।
डेओक्सीसेआ


4

तो हाँ, संक्षिप्त उत्तर है "आपको शब्दार्थ संस्करण का उपयोग करने की आवश्यकता है"

लेकिन इसके पीछे तर्क npm के सभी उपयोगकर्ताओं के लिए एक समझदार, समान पैकेज संस्करण प्रदान करना है। जब एक पैकेज का एक संस्करण संख्या प्राप्त होता है, तो आपके पास आत्मविश्वास का कुछ स्तर होता है जो लेखक सेमेस्टर को समझता है और इसे ठीक से नियोजित कर रहा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.