npm:バージョン「0.1」が無効なのはなぜですか?


90

npmがこれを行わないようにするには、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

完全を期すために、ここに動作するjsonがあります

$ 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」でした。

これはある種のAPI / ABI互換バージョン管理の概念で、3セットのバージョン番号が必要ですか?エラーメッセージがなぜこれに対してよりフレンドリーではないのですか?


1
npm versionコマンドを見てください。メジャー、マイナー、またはパッチレベルに基づいてセマンティックバージョンをインクリメントできます。例:npm version majornpm version minornpm version patch
ノア

回答:


107

はい、これは、npmパッケージが使用するバージョン管理スキームであるセマンティックバージョニングに必要です。以下がその抜粋ですnpm help json

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

npmのsemver実装がsemver.orgのものとどのように異なるかを次に示します。

  • バージョンは「v」で始めることができます
  • メインの3桁のバージョンとハイフンで区切られた数値アイテムは、「ビルド」番号として解釈され、バージョンが増加します。ただし、タグがハイフンで区切られた番号ではない場合、リリース前のタグとして扱われ、タグのないバージョンよりも小さくなります。そう、0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

37
涼しい。エラーは、「npmがセマンティックバージョニングを必要とする」という結果に対して何かを言っているだけです。
Steven Lu

タグ付きリリースの優先処理に注意するための++
Benxamin 2013年

@StevenLuこれは、使用しているsemverのバージョンについても言及していると思います。現在は2.0.0です。
デオキシセイア2017


4

つまり、「答えはセマンティックバージョニングを使用する必要があります」です。

しかし、その背後にある理由は、npmのすべてのユーザーに賢明で均一なパッ​​ケージバージョンを提供することです。パッケージのバージョン番号を取得すると、作成者がsemverを理解し、適切に使用していることをある程度確信できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.