npm相关依赖操作+版本问题

Posted jianxian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了npm相关依赖操作+版本问题相关的知识,希望对你有一定的参考价值。

(1)基本用法

1、本地安装npm install <package name>,缩写install缩为i
2、全局安装npm install -global <package name>,缩写global缩为g

  技术图片

3、git地址安装

  技术图片

4、强制force(武力、军队)安装

  技术图片

5、删除node_modules文件夹,重新安装

  技术图片

 

 

(2)版本控制

1、安装潜规则:install命令总是安装模块的最新版本
2、特定版本指令为npm i <package name>@版本号

  技术图片

 

(3)指定依赖关系(生产依赖/开发依赖)

  技术图片

 

 

 

(4)版本说明~与^区别

  这里首先需要明确大版本→小版本→补丁包的区别(王者荣耀的玩家自动脑补即可......)

当我们查看package.json中已安装的库的时候,会发现他们的版本号之前都会加一个符号,有的是插入符号(^),有的是波浪符号(~)。那么他们到底有什么区别呢?
先贴一个例子,对照例子来做解释:

  技术图片  

  当我们使用最新的Node运行‘npm instal --save xxx‘,的时候,他会优先考虑使用插入符号(^)而不是波浪符号(~)了。
  这对于你来说意味这什么呢?首先我们需要理解这两者(~和^)的区别。

区别:

波浪符号(~):他会更新到当前minor version(也就是中间的那位数字)中最新的版本。放到我们的例子中就是:body-parser:~1.15.2,这个库会去匹配更新到1.15.x的最新版本,
如果出了一个新的版本为1.16.0,则不会自动升级。波浪符号是曾经npm安装时候的默认符号,现在已经变为了插入符号。 插入符号(^):这个符号就显得非常的灵活了,他将会把当前库的版本更新到当前major version(也就是第一位数字)中最新的版本。放到我们的例子中就是:bluebird:^3.3.4
这个库会去匹配3.x.x中最新的版本,但是他不会自动更新到4.0.0

通俗理解:

波浪号为补丁版本最新版
插入符号为小版本最新版

  技术图片

 

   接下来做下测试,实际考察下两者区别

 

(5)测试版本号~与^

  1、初始化项目后安装特定版本jquery1.1.11,如下

    技术图片

 

     技术图片

 

     接下俩看下下载的安装依赖版本

    技术图片

如图所示,正是1.1.11版本

  2、接下来删除依赖包和锁文件package-lock.json,再次下载

     技术图片

 

     我们看下^1.11.1再次通过npm i下载时的情况

此时版本为1.12.4,如下所示

 

    技术图片

1.12.4版本是哪一代呢?一起看下

    技术图片

 

     查看可知1.12.4为次要版本最后最新版,验证到此结束

  3、接下来验证~补丁版

同理,删除之前依赖包和锁文件,然后将版本控制为~

    技术图片

 

    接下来安装依赖

    技术图片

 

     然后看下依赖版本

    技术图片

通过~1.11.1下载后的依赖版本为1.11.3,为什么?接下来看下jquery版本更迭即可知道

    技术图片

 

    最后遵守“大版本.次要版本.小版本”的格式,1.11.x系列的补丁版小版本最后最新一版为1.11.3。验证到此

 

 

     

 

 

.

以上是关于npm相关依赖操作+版本问题的主要内容,如果未能解决你的问题,请参考以下文章

npm安装依赖环境报错(vite@vitejs/plugin-legacy等)

运行elementUI相关组件的时候的问题

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

如何确定旧 npm 包版本的依赖关系

NPM有关确定与旧软件包版本的依赖关系的问题

如何解决 npm 中不同版本的传递依赖?