【问题标题】:Comparing semver versions with tilde / caret将 semver 版本与 tilde / caret 进行比较
【发布时间】:2019-03-16 03:10:35
【问题描述】:

假设我使用的是 NPM semver 包:

const semver = require('semver');

如果我将确切版本与波浪号/插入符号版本进行比较,哪个参数具有波浪号/插入符号是否重要?例如:

semver.eq('1.2.3', '^1.2');

semver.neq('~1.3.3', '1.2.8');

我猜你可以在没有任何改变的情况下切换参数,但我不是 100% 确定。

【问题讨论】:

    标签: node.js npm semantic-versioning


    【解决方案1】:

    实际上semver.eq 不适用于这样的范围。

    semver.satisfies 确实,而且位置很重要:

    console.log(semver.satisfies('1.0.0', '^1'))     // true
    console.log(semver.satisfies('1.2.2', '~1.2.3')) // false
    
    
    console.log(semver.satisfies('^1.0', '1.0.0'))   // Exception
    console.log(semver.satisfies('1.2.2', '~1.2.3')) // Exception
    
    console.log(semver.eq('1.0.0', '^1.0.0'))        // Exception
    console.log(semver.eq('^1.0', '1.2.3'))          // Exception
    

    这是ripllink to see

    【讨论】:

    • 谢谢,是的,我认为我的猜测是错误的,非常感谢。
    • 如果有“不满足”或者我们使用 !运营商?
    • 这样的事情通过了:console.log(semver.satisfies('1.2.3', '1.x || >=2.5.0 && !(5.0.0 - 7.2.3)'))
    猜你喜欢
    • 1970-01-01
    • 2021-12-02
    • 2019-08-23
    • 1970-01-01
    • 2019-08-02
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多