semver パッケージを使用して、ライブラリのバージョンが必要かどうか、互換性のあるバージョンがあるかどうかを確認する簡単な方法がわかりませんでした。一般的な操作のように見えるので、明らかな何かが欠けているのではないかと思いました。
Semver.orgによると、同じまたは新しいが、新しいメジャーバージョンではないバージョンは互換性があると想定されています。したがって、私が必要1.2.3
とし、私が持っている>=1.2.3 <2.0.0
場合、それはすべて良いことです. その比較は手作業で作成できますが、あまりにも一般的なので、もっと簡単な方法を見逃していないか気になります。
言い換えれば、私は明らかにこれをしなければならないようです
var canUse = function(need, have) {
var nextMajorVersion = semver.inc(need, 'major');
return semver.satisfies(have, '>=' + need + ' && ' + '<' + nextMajorVersion);
};
どちらが機能しますか
canUse('1.2.3', '1.2.3'); // true
canUse('1.2.3', '1.2.4'); // true
canUse('1.2.3', '1.3.0'); // true
canUse('1.2.3', '0.4.4'); // false
canUse('1.2.3', '2.4.4'); // false
はい、それは小さなコードです。X は Y と互換性があるかどうかを確認するためだけに、文字列を操作して範囲比較を手動で作成する必要がないほど一般的な操作のように思えました。
もっと簡単な方法はありますか?