package.json一般也就长这么模样:

{"name": "","description": "","version": "4.17.1","author": "","contributors": [],"license": "MIT","repository": "","homepage": "","keywords": [],"dependencies": {"accepts": "~1.3.7","array-flatten": "1.1.1","body-parser": "^1.19.0","content-disposition": "0.5.3","content-type": "~1.0.4","cookie": "^0.4.0","cookie-signature": "1.0.6","debug": "2.6.9","depd": "~1.1.2","encodeurl": "~1.0.2"},"devDependencies": {},"engines": {"node": ">= 0.10.0"},"files": [],"scripts": {"lint": "eslint .","test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/","test-ci": "...","test-cov": "...","test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/"}
}

其中十分重要的一项就是dependencies,也就是依赖项,每次npm install的时候下载下来的东东都是根据这里来的。

很显然这个dependencies对象中的key是依赖项的名称,值则是版本号,但是版本号前面有的啥也没有,比如:“array-flatten”: “1.1.1”,有的有波浪号,比如:“accepts”: “~1.3.7”,也有的有插入符号,比如:“body-parser”: “^1.19.0”。那这些到底有啥区别呢?

其实也比较简单:

波浪号〜匹配最新补丁版本号,也就是版本号的第三个数字。比如~1.2.3将匹配所有1.2.x版本,但将在1.3.0上停止。

插入符号^ 更宽松。 它匹配的是最新次要版本号,也就是第二个数字。比如:^ 1.2.3将匹配任何1.x.x版本,包括1.3.0,但将在2.0.0上停止。

前面啥符号也没有,很显然意思就是确定唯一指定的版本号。

当然这里还可以写>,>=,<,<=,比如:

"dependencies": {"accepts": "~1.3.7","array-flatten": "1.1.1","body-parser": "^1.19.0","content-disposition": ">0.5.3","content-type": "~1.0.4","cookie": "^0.4.0","cookie-signature": "<1.0.6","debug": ">=2.6.9","depd": "~1.1.2","encodeurl": "<1.0.2"}

意思也很简单,就是大于,或者大于等于,小于或者小于等于后面的版本号。

如果前面是星号*,那意思就是匹配任何版本。

如果版本号的值是latest,那意思安装的永远是最新发布的版本。

如果只匹配版本号的其中一位,除了上面的做法外,还有一种,那就是用x,比如:1.2.x,就可以匹配1.2.1,1.2.2,…,但是1.3.0肯定是不行的,这大家都懂,不用多解释。

最后再举个栗子吧:

"dependencies": {"accepts": "1.3.x"}

---------------------
作者:K.Sun
来源:CSDN
原文:https://blog.csdn.net/sinat_36246371/article/details/94621109
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

[转]npm生成的package.json文件中依赖项版本号前的波浪号(~)和插入符号(^)是啥意思?相关推荐

  1. npm生成的package.json文件中依赖项版本号前的波浪号(~)和插入符号(^)是啥意思?

    package.json一般也就长这么模样: {"name": "","description": "","v ...

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

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

  3. package.json文件中,^和~的区别

    package.json文件中,^和~的区别 偶然间遇到这样一个问题, package.json文件中,^和~的区别,查阅后,顺便做个笔记 package.json文件里面,显示的是项目所依赖的插件和 ...

  4. package.json文件||项目依赖||开发依赖

    package.json文件 node_modules文件夹的问题 package.json文件的作用 项目描述文件,记录了当前项目信息,例如项目名称.版本.作者.github地址.当前项目依赖了哪些 ...

  5. package.json文件中的main属性使用

    main属性主要使用在引用或者开发某个依赖包的时候需要此属性的支持,不然工程中无法用import导入依赖包: 不使用main属性的话我们可能需要这样写引用:require("some-mod ...

  6. node.js 中的package.json文件怎么创建?

    最近在用webstorm和nodejs做一些东西,老是各种混乱,今天上午创建一个新的项目,结果发现,npm init之后,并没有出现package.json,并没有太明确他的功能的小姑娘表示十分的惊慌 ...

  7. npm error enoent:no such file or directory...are-we-there-yet ; package.json文件和node_modules模相互转化

    vue-cli项目一段时间没有变动,几个星期后继续编辑安装 npm install vue-skeleton-webpack-plugin 插件时报错 npm error  enoent:no suc ...

  8. Node.js中创建package.json文件,安装第三方包

    在当前项目根目录下打开命令窗口 输入,开启安装向导 npm init 依次输入之后即可生成package.json文件,也可以不完全填写全部信息,不想填的回车可跳过. package name: (包 ...

  9. 模块加载及第三方包:Node.js模块化开发、系统模块、第三方模块、package.json文件、Node.js中模块的加载机制、开发环境与生产环境、cookie与session

    1.Node.js模块化开发 1.1 JavaScript开发弊端 JavaScript 在使用时存在两大问题,文件依赖和命名冲突. 1.2 软件中的模块化开发 一个功能就是一个模块,多个模块可以组成 ...

最新文章

  1. vc 文本框 只显示下划线_【Axure9百例】36.文本框搜索自动匹配
  2. 处理DateTime.Now不经过ToString()转换的格式(带有AM、PM)问题
  3. T-SQL、Jet SQL、PL-SQL
  4. 如何在input输入框中加一个搜索的小图片_前端开发困难重重,如何把握机会学习?...
  5. linux如何运行qt源码,Linux/Ubuntu下编译Qt4.8.2源码
  6. 数据中心部署气流遏制系统需要考虑的十大要素
  7. 递归求出第n项斐波那契数列_Java
  8. python类型错误:can only concatenate list (not str) to list
  9. POJ 3348 Cows
  10. 学习OpenGL ES之法线贴图
  11. 百度文库源码php,仿百度文库或豆丁网在线浏览doc.pdf.xls.txt源码
  12. 腾讯悄悄地发布了Linux版QQ-附安装-卸载方法
  13. bom 根据一阶 BOM 表整理多阶层 BOM 表
  14. 打开计算机桌面不显示不出来怎么办,电脑桌面黑屏不显示任何东西
  15. pat乙级1083C语言
  16. 美国人如何看待超自然?
  17. Alpha版本冲刺(五)
  18. 特邀嘉宾-著名主持人李艾“每一次登台都是一次成长
  19. 一文搞清楚软链接和硬链接
  20. [GBase 8s 教程]GBase 8s UNION 操作符

热门文章

  1. 设置润乾报表鼠标移到格子上就显示提示内容
  2. Lucene的一些基本使用方法和概念 (JAVA)
  3. 对症下药教你清除电脑中的木马
  4. 如何判断 .NET Core 应用程序是以管理员身份运行
  5. .NET6之MiniAPI(十七):缓存
  6. 使用zipKin构建NetCore分布式链路跟踪
  7. 来,Consul 服务发现入个门(一看就会的那种)
  8. C#使用NPOI进行word的读写
  9. .NET Core AWS S3云存储
  10. 2020年中国.NET开发者大会第二天 WorkShop