语义版本控制(node-semver)

X.Y.Z,主要版本X,次要版本Y,补丁Z

X:代表一个破坏兼容性的大变化;

Y:表示不会破坏任何内容的新功能;

Z:表示不会破坏任何内容的错误修复;

package.json中版本控制

"express":"^4.15.4"——表示至少应该使用版本4.15.4,但任何高于此版本的版本都可以,只要它们具有相同的主要版本(4.x.x)。PS:如果大版本号为0,则^与~相同,因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。

"express":"~4.15.4"——表示安装时不能改变主要版本和次要版本号(4.15.x)。

"express":"4.15.4"——表示安装的指定版本号(4.15.4)。

"express":"latest"——表示安装最新版本。

package-lock.json(npm 5.x.x新增,可禁用)优先级迭代

npm 5.0.x:不管package.json怎么变,npm install 时都会根据package-lock.json文件下载;

npm 5.1.x:npm install 会无视package-lock.json文件,去下载最新的包;

npm 5.4.2后:如果改了package.json,且package.json和package-lock.json文件不同,那么npm install 时npm会根据package中的版本号以及语义含义去下载最新的包,并更新至lock。如果两者是同一状态,那么npm install 都会根据lock下载,不会理会package实际包的版本是否有更新。

package-lock.json中各参数含义

"@hui-pro/empty": {
"version": "1.1.0",
"resolved": "http://...",
"integrity": "sha1-D2egR6O4AeJh31PAr0KIyJJsciQ=",
"requires": {
"@hui-pro/locale": "^1.1.0",
"@hui-pro/theme": "^1.1.0",
"@hui-pro/utils": "^1.1.0"
},
"dependencies": {
"@hui-pro/locale": {
"version": "1.1.0",
"resolved": "http://...",
"integrity": "sha1-ZzHcgwh/q5CqslQadrXzhzQc7vQ=",
"requires": {
"deepmerge": "^1.5.2"
}
},
"@hui-pro/theme": {
"version": "1.1.0",
"resolved": "http://...",
"integrity": "sha1-+buQbn8OnWU32dIdNg6v9g6cUrU=",
"requires": {
"sass": "^1.19.0",
"sass-loader": "^7.1.0"
}
},
"@hui-pro/utils": {
"version": "1.1.0",
"resolved": "http://...",
"integrity": "sha1-V862xMe+H5G751C3CpT3bGIFr1k=",
"requires": {
"h-jsencrypt": "^1.0.1",
"moment": "^2.24.0",
"qs": "^6.5.2",
"resize-observer-polyfill": "^1.5.1"
}
}
}
}

version:应安装的特定版本;

resolved:模块的位置(URI);

integrity:验证模块完整性的哈希;

requires:它依赖的包列表;

dependencies:依赖包详情列表;

参考资料

https://segmentfault.com/a/1190000017239545

package.json相关疑惑总结的更多相关文章

  1. vue.js的package.json相关问题解惑

    使用vue-cli创建vue.webpack项目,在项目中用到了iSlider移动端滑动插件,只在本地命令工具中npm install islider.js:提交之后,partner下载代码后一直运行 ...

  2. angularjs webstorm 单元测试 Package.json

    Package.json小结 生成package.json 定位到想放置package.json的目录,运行npm init,根据提示就可以生成package.json文件,其中test comman ...

  3. 常用的package.json以及React相关

    常用的package.json以及React相关 前言 package.json 的简单介绍 简单版的 package.json 必备属性(name & version) name 字段 ve ...

  4. webpack打包时修改package.json的版本号,并输出相关版本

    可直接修改的方式 { plugins: [ function() { // 修改package.json中的版本号 this.plugin('done', function() { const pkg ...

  5. npm package.json属性详解

    概述 本文档是自己看官方文档的理解+翻译,内容是package.json配置里边的属性含义.package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象.其中很多属性可以通过np ...

  6. npm中package.json详解

    通常我们使用npm init命令来创建一个npm程序时,会自动生成一个package.json文件.package.json文件会描述这个NPM包的所有相关信息,包括作者.简介.包依赖.构建等信息,格 ...

  7. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

  8. 伙计,给我来一杯package.json!不加糖

    前言:夜深了,我熬了一锅热气腾腾的package.json,给大家端上来,希望大家喜欢 json和JS对象的区别 package.json,顾名思义,它是一个json文件,而不能写入JS对象. 所以我 ...

  9. ABP vue+asp.net core yarn serve报 Cannot find module 'typescript/package.json错误

    abp的前端在node install 安装完成了相关的依赖包,直接yarn serve运行相关服务的时候报"Cannot find module 'typescript/package.j ...

随机推荐

  1. 条款20.宁以pass-by-reference-to-const替换pass-by-vlaue

        缺省情况下c++以by value的方式传递对象至(或来自)函数.除非你另外指定,否则函数参数都是以实际实参的复件(副本)为初值,而调用端所获得的亦是函数返回值的一个复件.这些复件是由对象的c ...

  2. 《精通Spring4.X企业应用开发实战》读后感第四章

  3. day8 服务器

    XML约束 XML约束要求:大家能够看懂约束内容,根据约束内容写出符合规则的xml文件. 2.1 引入 XML语法: 规范的xml文件的基本编写规则.(由w3c组织制定的) XML约束: 规范XML文 ...

  4. glib 库 hash table 使用

    glib库提供了 hashtable 的实现 1. 常用函数: 创建一个 GHashTable 函数: hash_func 是创建value的key值的函数,key_equal_func 是比较两个k ...

  5. Linux下的eclipse的安装

    其实在linux里配好java环境后,就已经好了. 从官网下一个eclipse,解压后,就可以直接执行eclipse了,实在是不知道什么是安装. 其实在配置java时,也是一样. 可见在linux下, ...

  6. 使用LinearLayout实现ListView,解决ListView和ScrollView滚动冲突

    在项目中,我们常常会遇到一个ScrollView里面会嵌套ListView的情况,但往往你会发现,ListView和ScrollView的滚动时间会有冲突问题,造成ListView不能完全显示.虽然网 ...

  7. WPF语言切换,国际化

    winform语言切换在每个窗口下面有一个.resx结尾的资源文件,在上面添加新字符串就好了: WPF语言切换跟winform不一样的地方在于需要自己添加资源文件,并且这个资源文件可以写一个,也可以写 ...

  8. Maven修改默认仓库为阿里云仓库

    Maven 仓库默认在国外, 国内使用难免很慢,我们可以更换为阿里云的仓库. 第一步:修改 maven 根目录下的 conf 文件夹中的 setting.xml 文件,在 mirrors 节点上,添加 ...

  9. Js获取当前的日期和时间以及时间戳转化为时间

    /** *获取当前时间 *format=1精确到天 *format=2精确到分 */ function getCurrentDate(format) { var now = new Date(); v ...

  10. VUE之环境安装

    一.环境安装 软件安装: nodejs https://nodejs.org/en/ vscode https://code.visualstudio.com/docs/?dv=win python- ...