2013-06-02 8 views
60

npmのアプリケーションのバージョンを0.1から0.0.1に変更してnpmがこれをしないようにする必要がありました。完全のためにnpm:バージョン "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!  <[email protected]> 

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 

ここで作業JSONはそれがエラーをしたとき、 "0.1" にするために使用

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

バージョンです。

これは、バージョン番号が3セット必要なAPI/ABI互換バージョン管理の概念ですか?なぜエラーメッセージはより穏やかでないのですか?この?

+0

'npm version'コマンドを見てください。メジャーバージョン、マイナーバージョン、またはパッチレベルに基づいてセマンティックバージョンを増やすことができます。例: 'npm version major'、' npm version minor'、 'npm version patch' – Noah

答えて

73

はい、これはsemantic versioningに必要です。これはnpmパッケージのバージョン管理方式です。ここthe snippet from npm help jsonです:

バージョンは、依存関係としてNPMに同梱されているnode-semverによって解析可能でなければなりません。 (npm install semverはそれを自分で使用しています。)

ここ

だNPMのsemver実装がsemver.orgに何から逸脱する方法:

    「V」
  • メインの三から分離した数値項目で始めることができます
  • バージョンハイフンによる数字のバージョンは "ビルド"の数字として解釈され、バージョンが増加します。しかし、タグがハイフンで区切られた番号でない場合は、リリース前のタグとして扱われ、タグのないバージョンよりも小さくなります。だから、0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta
+25

クールです。エラーは "npmにはセマンティックバージョニングが必要"という効果を発揮します。 –

+2

npm githubページhttps://github.com/isaacs/npm – Noah

+0

++のタグ付きリリースの優先処理に注目してください。 – Benxamin

4

だからいや、短い答えは

を「あなたはセマンティックバージョニングを使用する必要がある」しかし、その背後にある理由は、NPMのすべてのユーザーに賢明な、均一なパッ​​ケージのバージョンを提供することです。パッケージのバージョン番号を取得するときには、のレベルがあり、著者がセームを理解して正しく使用しています。

関連する問題