codecamp

5.2 npm 版本知识总结

1. npm 发布包的版本指定规则

使用 Npm 发布一个包的时候,往往要遵循 x.y.z 的规则,发布的第一个版本一般为 1.0.0。

  • z 补丁号。修改某个功能的 Bug 时,z 值 +1 变成 1.0.1;
  • y 小版本号。增加一个新功能,且不影响已有功能,y 值 +1 变成 1.1.0;
  • x 大版本号。引入新的变化,破坏向后兼容,x 值 +1 变成 2.0.0。

2. 关于向后兼容与向前兼容

向前兼容和向后兼容可以用下面这个例子方便理解。

  • 向后兼容:Windows 10要能运行为Windows 3.1开发的程序;
  • 破坏向后兼容:新版本的系统不能运行老版本系统上的程序,可以理解为整容的跟以前完全不一样了;
  • 向前兼容:Windows 3.1要能运行为Windows 10开发的程序。

3. package.json 中包版本 ~ 与 ^ 说明

package.json 中会记录很多包的版本号,前面大多出现 ^ 和 ~ 符号,表示某个包的版本号取值范围,包的版本号在这个范围之内都是可以的。

  "devDependencies": {
    "axios": "^0.15.3",
    "babel-eslint": "^6.1.2",
    "babel-plugin-dva-hmr": "^0.3.2",
    "babel-plugin-import": "^1.1.1",
    "draftjs-to-html": "^0.7.0",
    "eslint": "^3.17.1",
    "eslint-config-airbnb": "^9.0.1",
    "eslint-plugin-import": "^1.16.0",
    "eslint-plugin-jsx-a11y": "^1.4.2",
    "eslint-plugin-react": "^5.1.1",
    "less-vars-to-js": "^1.1.2",
    "path-to-regexp": "^1.7.0",
    "rc-tween-one": "^1.0.0",
    "redbox-react": "^1.2.10",
    "roadhog": "0.6.0-beta.6"
  },

假定某个包的版本是 1.4.0

  • ~1.4.0表示:>=1.4.0 && < 1.5.0说明:小版本不变,补丁号可以取最大值。
  • ^1.4.0表示:>=1.4.0 && < 2.0.0说明:大版本号不变,小版本号可以取最大值。


5.1 npm 模块API查询
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

一、npm 简介

五、使用npm可能存在的疑惑

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }