1. ホーム
  2. node.js

[解決済み] npm: なぜバージョン "0.1" は無効なのですか?

2023-01-05 13:48:11

質問

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!     <[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です。

$ 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 組のバージョン番号を必要とする、ある種の API/ABI 互換性のバージョン管理の概念でしょうか? なぜエラー メッセージがこれほど親切ではないのでしょうか?

どのように解決するのですか?

はい、これは セマンティックバージョニング これは npm パッケージが使用するバージョン管理スキームです。これは のスニペットです。 npm help json :

でパース可能なバージョンであること。 ノードセンバ でパース可能である必要があります。( 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