通俗易懂的 Npm 入门教程 5.2 npm 版本知识总结

2024-02-25 开发教程 通俗易懂的 Npm 入门教程 匿名 2

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说明:大版本号不变,小版本号可以取最大值。