npm的语义化版本控制——Semantic versioning

在新发布的代码中传达更改的程度非常重要,因为有时更新会破坏包需要的代码(称为依赖项)。语义化版本控制(semver)是一个旨在解决这个问题的标准。

Semver出版商

如果一个项目要与其他项目共享,那么它应该从1.0.0开始(尽管npm上的一些项目不遵循这个规则)。

在此之后,应按以下步骤处理更改:

Semver消费者

在我们的package.json里面有一个version字段。那么,怎么在项目不断构建的过程中调整版本呢?

npm有一套自己的版本控制标准——Semantic versioning(语义化版本)

具体体现为:对于"version":"x.y.z"
  • 修复bug,小改动,增加z
  • 增加了新特性,但仍能向后兼容,增加y
  • 有很大的改动,无法向后兼容,增加x
例如:我原本的项目是1.0.0版本的话
  • 若是1中情况,变为1.0.1
  • 若是2中情况,变为1.1.0
  • 若是3中情况,变为2.0.0

通过命令npm version <update_type>自动改变版本

update_type为patch, minor, or major其中之一,分别表示补丁,小改,大改

例如我在shell去改动项目版本

此命令将更改package.json中的版本号。再来看看我的package.json,已经变成了v1.0.0

更新版本号之后,再次运行npm publish。

npm学习(八)之如何使用语义化版本的更多相关文章

  1. Semantic Versioning Specification & 语义化版本

    Semantic Versioning Specification & 语义化版本 Semantic Versioning Specification http://semver.org 16 ...

  2. 关于语义化版本(semantic versioning or SemVer)

    1  为什么要有SemVer? SemVer用来规范组件之间的依赖版本,它使用一个版本号来传递出组件的API的变化情况. 在理解这规范之后,看一眼依赖包的版本号,就知道API的变化(兼容性)程度,方便 ...

  3. 语义化npm版本号

    参考资料: 语义化版本2.0.0 the semantic versioner for npm 在package的devDependencies和dependencies2个字段中有指定依赖包版本,这 ...

  4. NPM 学习笔记整理

    NPM 学习笔记整理 阅读 550,2017年06月04日 发布,来源:blog.ihoey.com 什么是 NPM npm 之于 Node ,就像 pip 之于 Python , gem 之于 Ru ...

  5. Semver(语义化版本号)扫盲

    最近Github 10周年在朋友圈里沸沸扬扬刷屏,小编在工作中却惊讶的发现不少同事对版本号中的beta和rc没有概念,使用 npm install package@next 时,也不清楚next代表的 ...

  6. npm学习(三)之如何安装本地包、更新本地安装的包、卸载本地安装的包

    如何安装本地包 有两种方式用来安装 npm 包:本地安装和全局安装.至于选择哪种方式来安装,取决于我们如何使用这个包. 如果你自己的模块依赖于某个包,并通过 Node.js 的 require 加载, ...

  7. semantic versioning语义化版本号

    语义化版本号 是由github创始人 Tom Preston-Werner 发起的一个关于软件版本号的命名规范,关于这个规范详细的说明可以在 官网 查看,也可访问其 GitHub项目页面 ,官网文档: ...

  8. 语义化版本控制规范(SemVer)

    摘自: http://semver.org/lang/zh-CN/ 简介 在软件管理的领域里存在着被称作"依赖地狱"的死亡之谷,系统规模越大,加入的套件越多,你就越有可能在未来的某 ...

  9. 版本号严格遵守semver语义化标准

    地址:http://semver.org/lang/zh-CN/?spm=a219a.7629140.0.0.GUJMXE 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递 ...

随机推荐

  1. A. Detective Book

    A. Detective Book time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  2. getFieldDecorator用法(一)——登录表单

    之前使用antd的ui表单,却没发现这么好用的用法,推荐给大家 import React from "react"; import { Card, Form, Input, But ...

  3. JavaWeb_(Jar)使用fastjson解析json和序列化对象

    菜鸟教程 传送门 JSON官网 传送门 fastjson插件下载 传送门 序列化[百度百科]:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对 ...

  4. [CSP-S模拟测试]:字符交换(贪心+模拟)

    题目传送门(内部题136) 输入格式 输入文件第一行为两个正整数$n,k$,第二行为一个长度为$n$的小写字母字符串$s$. 输出格式 输出一个整数,为对字符串$s$进行至多$k$次交换相邻字符的操作 ...

  5. legend3---4、lavarel中session使用注意

    legend3---4.lavarel中session使用注意 一.总结 一句话总结: session('key',$value)不是存值,是设置默认值,session(['key'=>$val ...

  6. de4dot 反混淆

    de4dot .NET deobfuscator and unpacker. Description de4dot is an open source (GPLv3) .NET deobfuscato ...

  7. C# 防火墙操作之启用与关闭

    通过代码操作防火墙的方式有两种:一是代码操作修改注册表启用或关闭防火墙:二是直接操作防火墙对象来启用或关闭防火墙.不论哪一种方式,都需要使用管理员权限,所以操作前需要判断程序是否具有管理员权限. 1. ...

  8. 阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版

    遍历枚举 改造获取的方法,这样获取的对象就是单例模式 再次运行测试程序 对象只有一个实例的情况下对i这个值进行了反复的操作.当多个人活着多线程在使用时.这就会出现类成员变量由于第一个人的修改.后面看到 ...

  9. MySQL 常见面试知识点

    之前简单总结了一下MySQL的场景面试知识点 1.讲下MVCC原理 2.MySQL高可用架构介绍 3.OSC(在线更改表结构)原理 4.MySQL性能调优有哪些关键点/经验 5.MySQL在线备份方案 ...

  10. 用linux主机做网关搞源地址转换(snat)

    一.原理图  二.环境 外网  A:192.168.100.20 (vmnet1) 网关  B:192.168.100.10 (vmnet1)     192.168.200.10 (vmnet2) ...