热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

NPM依赖库版本号、符号

**npm版本号形式X.Y.Z**其中X、Y和Z为非负的整数,且禁止(MUSTNOT)在数字前方补零版本格式:主版本号.次版

** npm 版本号形式 X.Y.Z**
其中 X、Y 和 Z 为非负的整数,且禁止(MUST NOT)在数字前方补零
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

X. 主版本号:当你做了不兼容的 API 修改,
Y. 次版本号:当你做了向下兼容的功能性新增,
Z. 修订号:当你做了向下兼容的问题修正。

版本号前的符号说明
1、没有任何符号
1.0.0
完全百分百匹配,当前库/项目必须使用当前版本号,如果和其他依赖使用了相同库不同版本,会在库的文件夹下建立一个 node_modules 文件夹存放它需要依赖的版本文件。
2、> (大于)
必须大于某个版本
例如 >1.0.0 ,可以使用 1.0.1、1.1.1 、2.0.0 的版本。
3、>=(大于等于)
必须大于或等于某个版本号
例如 >=1.0.0 ,可以使用 1.0.0、1.1.1 、2.0.0 的版本。
4、<(小于)
必须小于某个版本
例如 <2.0.0 &#xff0c;可以使用 1.0.1、1.1.1 、1.1.9 的版本。
5、<&#61;(小于等于)
必须小于或等于某个版本
例如 <&#61;2.0.0 &#xff0c;可以使用 1.0.1、1.1.1 、2.0.0 的版本。
6、~
不改变主版本号和次版本号&#xff0c;修订号可以随意更改
例如 ~2.0.0 &#xff0c;可以使用 2.0.0、2.0.2 、2.0.9 的版本。
7、^
不改变主版本号&#xff08;主版本号非0&#xff09;&#xff0c;此版本号和修订号可以随意更改
例如 ^2.0.0 &#xff0c;可以使用 2.0.1、2.2.2 、2.9.9 的版本。
8、x
x位置即后的位置可以随意&#xff08;不用在主版本号上&#xff09;。
例如 1.x 可以使用 1.0.1 、1.1.1 、1.9.1的版本。
例如 2.1.x 可以使用 2.1.1、2.1.9的版本

9、*
*表示任意版本 对版本没有限制&#xff0c; 一般不用

"base": "*"

10、-
-表示两个版本号之间的版本

"base": "1.0.1-1.5.9"

例如 1.0.1-1.5.9 可以使用 1.0.1到1.5.9之间的任意版本

11、||(或)
|| 可以用来设置多个版本号限制规则
例如 >&#61; 3.0.0 || <&#61; 1.0.0 可以使用版本号大于等于3.0.0的或者使用版本号小于等于1.0.0

注意点
在初次安装依赖的时候&#xff0c;npm 会生成一个 package-lock.json 文件&#xff0c;yarn 生成一个 yarn.lock 文件&#xff0c;把当前时间点的依赖关系固定&#xff0c;就算删除 node_modules 也不会改变。

如果项目/库更改了依赖的版本&#xff0c;最好删除yarn.lock和node_modules重新安装。如果不&#xff0c;会出现依赖关系错乱&#xff0c;在原依赖内生成不必要的文件。

例如 项目和其中一个lib1都依赖于一个包的不同版本

lib1&#xff1a; 依赖于 ‘base’:’^1.1.0’
项目依赖于 ‘base’:‘1.2.0’

初次安装会在 node_modules 根目录放置 base 库&#xff08;1.2.0&#xff09;的版本。

调整依赖关系
lib1&#xff1a; 依赖于 ‘base’:’^1.1.0’
项目依赖于 ‘base’:‘1.7.0’

如果不删除yarn.lock和node_modules再次安装时&#xff0c;这时候 lib1 文件夹内会有一个独立的 base&#64;1.2.0 的版本。
因为在初次安装的时候lib1依赖的base版本是1.2.0&#xff0c;yarn_lock把版本锁死之后,npm会始终认为lib1就是依赖于base: 1.2.0,
即使最新的 base1.7.0也符合 lib1的 ‘base’:’^1.1.0’,lib1也会按照目录就近寻找符合的依赖包base&#64;1.2.0

所以 不删除 yarn_lock 和node_modules 可能会造成依赖关系混乱


推荐阅读
  • 深入浅出 webpack 系列(二):实现 PostCSS 代码的编译与优化
    在前一篇文章中,我们探讨了如何通过基础配置使 Webpack 完成 ES6 代码的编译。本文将深入讲解如何利用 Webpack 实现 PostCSS 代码的编译与优化,包括配置相关插件和加载器,以提升开发效率和代码质量。我们将详细介绍每个步骤,并提供实用示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 如何在启用ECMAScript 6特性的情况下高效运行Node.js应用?本文将详细介绍如何在Node.js环境中启用并充分利用ES6的新特性,包括模块化、箭头函数、模板字符串等,以提升代码的可读性和开发效率。同时,文章还会探讨性能优化策略,确保应用在启用ES6特性后仍能保持高效运行。 ... [详细]
  • Vue CLI 初始化 Webpack 项目时,main.js 文件是如何被调用的? ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
  • 如何在 Node.js 环境中将 CSV 数据转换为标准的 JSON 文件格式? ... [详细]
  • 本文详细介绍了在 React Native 开发过程中遇到的 'Could not connect to development server' 错误及其解决方法。该问题不仅影响开发效率,而且难以通过网络资源找到确切的解决方案。本文将提供详细的步骤,帮助开发者快速解决这一常见问题。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • Composer 无法加载本地第三方库?如何解决这一常见问题 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 如何使用ES6语法编写Webpack配置文件? ... [详细]
  • Vue应用预渲染技术详解与实践 ... [详细]
author-avatar
笃志单车小博_801
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有