用semver解析版本号
semver是版本规范,也是npm中的一个库。最近有机会使用到这个库,因此在这里记录一下。
我的需求很简单,就是在一堆版本号中,取某一个范围内的最大版本号。这里面给出两个条件,一堆版本号和一个范围;需要的结果是最大版本号。
正巧,这正是semver功能的一个子集。
semver中有
类,Range
函数,maxSatisfying
因此,就有了下面的代码
const Range = require('semver/classes/range')
const maxSatisfying = require('semver/ranges/max-satisfying')
const getVersions = require('./getVersions')const targtVersion = maxSatisfying(getVersions(), new Range('^3.0.0'))
在给定的versions中,取3.0版本中的最大版本号。
意外发现
当然这个意外发现完全源于我对semver的陌生。
“^3.0.0”就是版本号的选择范围。这个范围不会包含3.0.0-0这种形式的版本号。而用npm version preminor/prepatch/prerelease生成预览版并发布,^3.0.0或者~3.0.0这种选择范围会将预览版的版本号过滤掉,这一点确实很有用啊。
附
semver安装
npm install --save semver
用semver解析版本号相关推荐
- semver 源码解析(Npm library)
semver 源码解析(Npm library) 文章目录 semver 源码解析(Npm library) 正文 0. 基本信息 1. 源码解析 1.1 核心类型 1.2 SemVer 类型实现核心 ...
- 语义化版本控制模块-Semver
执行某些命令的时候,你是否遇到过提醒版本过低,需要升级版本的提示,那么对于版本号,是以一个怎样的规则来进行的限制和匹配的呢? semver, 是一个语义化版本号管理的模块,可以实现版本号的解析和比较, ...
- ActiveMQ源码解析 建立连接
作为一个消息中间件,有客户端和服务端两部分代码,这次的源码解析系列主要从客户端的代码入手,分成建立连接.消息发送.消息消费三个部分.趁着我昨天弄明白了源码编译的兴奋劲头还没过去,今天研究一下建立连接的 ...
- @mpx/cli 脚手架源码解析
前言 Mpx是一款致力于提高小程序开发体验的增强型小程序框架,通过Mpx,我们能够以最先进的web开发体验(Vue + Webpack)来开发生产性能深度优化的小程序. 下面说说mpx脚手架的源码: ...
- Spring改变版本号命名规则:此举对非英语国家很友好
要想改变命运,首先改变自己.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BA ...
- 字符串版本号比较(Java)
APP的版本升级更新,会用到版本号的对比.根据版本号去解析埋点上报得信息. 正则匹配方式解析版本号中字符和数字做对比,默认字符大于数字(版本号1 是否大于等于 版本号2).详见以下代码 @Slf4j ...
- maven package install 时候 版本号一直引用无效的问题
代码分为平台和业务系统两部分,业务系统引用平台代码 代码中有父级.子级项目,子级项目版本号是引用的父级定义的版本号,为了版本号方便管理 业务系统引用了平台代码的时候,mvn package项目,报错如 ...
- js读取外部json指定字段值完整代码_前端工程化 剖析npm的包管理机制(完整版)...
导读 现如今,前端开发的同学已经离不开 npm 这个包管理工具,其优秀的包版本管理机制承载了整个繁荣发展的NodeJS社区,理解其内部机制非常有利于加深我们对模块开发的理解.各项前端工程化的配置以加快 ...
- 腾讯IVWEB前端工程化工具feflow思考与实践
本篇文章主要介绍腾讯IVWEB团队从0到1在工程化的思考和实践.feflow的全称是Front-end flow(前端工作流),致力于提升研发效率和规范的工程化解决方案.愿景是通过feflow,可以使 ...
最新文章
- Ubuntu16.04 安装Qt
- matlab智能小车避障,Arduino智能小车系列教程4——超声波避障
- 泰拉瑞亚服务器权限文件,泰拉瑞亚云服务器权限
- 计算一个尽可能大的素数
- FEIM Studios 团队欢迎您加入
- python中深拷贝和浅拷贝_**Python中的深拷贝和浅拷贝详解
- XML指南——XML元素
- 《高可用架构·中国初创故事(第3期)》一1.4 认同企业文化
- C Primer Plus (Stephen Prata 著)
- 深度学习领域堪称圣经的书籍(深度学习又称之为花书)-由图灵奖获得者Yoshua Bengio所著
- Tango学习笔记(1)
- 可视化——统计图表介绍
- 免费邮箱怎么注册?创建注册邮箱帐号免费吗?
- ORA-00904: invalid identifier
- c#FileStream文件读写可能会出现乱码
- linux 内存映射-ioremap和mmap函数
- python json接口数据提取_返回数据中提取数据的方法(JSON数据取其中某一个值的方法)...
- 如何开发出成功的iOS应用(流程图)
- 加法器的实现(半加器,全加器,行波进位加法器,超前进位加法器,流水线加法器)
- Android Studio中注解处理器(annotation processors)的增量编译失败分析
热门文章
- python37降到36原来的包还可以用吗_Python学习之路37-使用asyncio包处理并发
- 《现代电力电子学与交流传动》读书笔记(二)
- 现代科技概论_现代科技概论课程:天文与宇宙2
- 繁體漢化技術研究?繁體转简体中文要注意的地方
- Apache Spark 练习七:使用Spark分析化妆品电子商务数据
- 太阳光轨迹软件_太阳光自动跟踪设计_图文(精)
- vs2015编译运行quake3
- 命令提示符的打开以及简单的Dos命令
- 安川服务器怎样显示母线电压,请问谁知道安川变频器L1000A7.5kw的变频器的直流母线电压范围啊...
- 化妆晚会 - UPCOJ 3613 - 二分查找