package.json
開発サイクルでバージョン管理がどのように機能するかを知りたいです。
package.json
以下のような 1 つのバージョン プロパティの各数値の意味は何ですか?
{
"name": "A NodeJS Project",
"version": "0.0.0",
...
}
package.json
開発サイクルでバージョン管理がどのように機能するかを知りたいです。
package.json
以下のような 1 つのバージョン プロパティの各数値の意味は何ですか?
{
"name": "A NodeJS Project",
"version": "0.0.0",
...
}
package.json
npm で使用されるファイルは、セマンティック バージョニング モデルに従います。それはmajor.minor.patch
パターンに従います。http://semver.org/には、セマンティック バージョイング プロセスを説明する専用のサイトがあります。npm バージョンの man ページも参照してください。詳細については、https ://npmjs.org/doc/cli/npm-version.html を参照してください。
それはセンバーではありません。これは、バージョン番号のように見えます。パッケージのバージョンは、semver のセマンティクスに従う必要はありません。semver のようにソートされているだけです。
通常、これらの 3 桁の意味は次のとおりです。
最初に呼び出される番号major
は、更新時にアプリケーションに大幅な変更が必要になる可能性が非常に高い大きな変更がある場合に増分されます。
呼び出される 2 番目の番号minor
は、主に下位互換性のある小さな変更がある場合にインクリメントされます。一部のアプリケーションが壊れる可能性がありますが、これは例外です。
呼び出される 3 番目の番号micro
は、新しいバージョンが npm にプッシュされるたびにインクリメントされます。マイクロ アップデートに互換性を破る変更を含めることは悪い習慣と考えられていますが、npm 自体でさえそうすることがあります。
ただし、これは決まったものではなく、基本的に必要なすべてのバージョン番号を選択できます。たとえば、esprima-fb
パッケージは次のようなバージョン管理を使用します: 1001.1001.2000-dev-harmony-fb
. これらの数字にも意味がありますが、明らかに意味がありません。
編集:現在の現状をより正確に反映しているため、バルプトンのtwitterからのバージョン番号の定義を含めたいと思います。
- リビジョン = b/c ブレークなし
- 未成年者 = 一部の b/c 休憩
- 専攻 = 皆のための b/c 休憩
... b/c は下位互換性を意味します