语义版本控制(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

转载于:https://www.cnblogs.com/dreamsqin/p/10938767.html

package.json相关疑惑总结相关推荐

  1. npm package.json文件中的依赖关系,devDependencies和peerDependencies之间有什么区别?

    本文翻译自:What's the difference between dependencies, devDependencies and peerDependencies in npm packag ...

  2. npm使用入门(package.json)

    npm使用入门 crazygit 关注 2017.03.10 18:31 字数 1773 阅读 1617评论 0喜欢 10 NPM是什么 npm npm makes it easy for JavaS ...

  3. npm WARN saveError ENOENT: no such file or directory, open ‘/Users/....../package.json‘的解决办法

    执行npm报错: npm WARN saveError ENOENT: no such file or directory, open '/Users/....../package.json' 根据错 ...

  4. npm中package.json详解

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

  5. 你可能不知道的package.json

    大家好,我是若川.最近组织了源码共度活动:1个月,200+人,一起读了4周源码,参与的小伙伴都表示收获很大.如果感兴趣可以点击链接扫码加我微信 ruochuan12.今天推荐一篇相对简单的文章. 前言 ...

  6. package.json说明

    package.json是什么? 直接的说:就是管理你本地安装的npm包  一个package.json文件可以做如下事情: 展示项目所依赖的npm包  允许你指定一个包的版本[范围]  让你建立起稳 ...

  7. vue-cli 脚手架项目简介(一) - package.json

    vue-cli是用来生成 vue项目的命令行工具,它的使用方法是这样的: vue init <template-name> <project-name> 第二个参数 templ ...

  8. package.json和bower的参数解释

    package.json和bower的参数解释 一.package.json解释: package.json是用来声明项目中使用的模块, 这样新的环境部署时,只要在package.json文件所在的目 ...

  9. Error:npm WARN enoent ENOENT: no such file or directory, open ‘C:\Users\XX\package.json‘son‘

    Error:npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\XX\package.json'son' 报错如下 解决 ...

最新文章

  1. OKR和绩效管理如何一起工作?
  2. 如何用node命令和webpack命令传递参数 转载
  3. 网络通讯程序整理(一)
  4. fastjson json串转list
  5. MyBatis多数据源配置(读写分离)
  6. 管道、通道、管程的区别
  7. 01_Eclipse的使用方法
  8. CSS padding
  9. c语言插件实现原理,C语言实现插件机制
  10. 学计算机的用surface,11个高效利用Surface处理工作学习任务的方法 - Surface 使用教程...
  11. 13章 购买服务器和域名绑定
  12. mysql查询前段时间_没想到!我在简历上写了“精通MySQL”,阿里面试官跟我死磕后就给我发了高薪offer...
  13. 软件工程第十四周总结
  14. yaml使用方法_通过网络使用YAML
  15. Sublime Text 3在行前插入递增数字序号的方法
  16. WinServer服务器IP访问白名单设置
  17. PRACH过程中RA-RNTI和C-RNTI的作用
  18. Use After Free
  19. Rust开发——Vec与Struct的使用示例
  20. 设备版本升级(锐捷)

热门文章

  1. ps专业色彩调色扩展面板 Moody Photoshop Panel 1.1.2汉化版
  2. number java_java中Number Math 类方法
  3. 基础省选+NOI 第9部分 网络流
  4. 简单英文题 25 Sequence Search(python)
  5. 1.5编程基础之循环控制 32 求分数序列和 python
  6. 最新js实现复制粘贴功能实例
  7. Mysql事项,视图,函数,触发器命令
  8. java web 邮件_JavaWeb -- 邮件收发
  9. 稳压电源的设计与制作_电子爱好设计的直流可调压电源电路,太完美了,有图,亲测可用...
  10. PHP笔记-PHP中构造函数要注意的地方