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。验证到此

    

.

原文地址:https://www.cnblogs.com/jianxian/p/12248610.html

时间: 2024-07-28 13:05:00

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

算法—二叉查找树的相关一些操作及总结

二叉查找树得以广泛应用的一个重要原因就是它能够保持键的有序性,因此它可以作为实现有序符号表API中的众多方法的基础.这使得符号表的用例不仅能够通过键还能通过键的相对顺序来访问键值对.下面,我们要研究有序符号表API中各个方法的实现. 1.最大键和最小键 如果根结点的左链接为空,那么一棵二叉查找树中最小的键就是根结点:如果左链接非空,那么树中的最小键就是左子树中的最小键.简单的循环也能等价实现这段描述,但为了保持一致性我们使用了递归.找出最大键的方法也是类似的,只是变为查找右子树而已. 2.向上取

(笔记)Linux内核中内存相关的操作函数

linux内核中内存相关的操作函数 1.kmalloc()/kfree() static __always_inline void *kmalloc(size_t size, gfp_t flags) 内核空间申请指定大小的内存区域,返回内核空间虚拟地址.在函数实现中,如果申请的内存空间较大的话,会从buddy系统申请若干内存页面,如果申请的内存空间大小较小的话,会从slab系统中申请内存空间.有关buddy和slab,请参见<linux内核之内存管理.doc> gfp_t flags 的选项

npm 的常用操作

cd 项目目录 npm install -y 初始化信息,-y表示所有的选择都表示确定 执行完之后会自动生成一个package.json文件 添加依赖: npm -i(install) jquery 安装jQuery 默认从当前目录找,找不到网上自动下载 删除依赖: npm uninstall xxxxx 更新依赖: npm update xxxxx' 之后所有的依赖包都会安装到这里 { "_from": "bootstrap", "_id":

git commit 相关的操作

本地仓库状态相关的操作 1.  git  commit 将从上次提交后到现在这段时间内,暂存区所有的变化提交到版本库中: git  commit  -m '此次提交操作的简要说明(单引号括起来)' commit成功后会显示提交的文件: 2.  git  reset  --hard 撤销上次提交中的所有操作: 原文地址:https://www.cnblogs.com/virgosnail/p/10204693.html

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip install Scrapy 手动源码安装,比较麻烦要自己手动安装scrapy模块以及依赖模块 安装以下模块 1.lxml-3.8.0.tar.gz (XML处理库) 2.Twisted-17.5.0.tar.bz2 (用Python编写的异步网络框架) 3.Scrapy-1.4.0.tar.gz

拷贝构造,深度拷贝,关于delete和default相关的操作,explicit,类赋初值,构造函数和析构函数,成员函数和内联函数,关于内存存储,默认参数,静态函数和普通函数,const函数,友元

 1.拷贝构造 //拷贝构造的规则,有两种方式实现初始化. //1.一个是通过在后面:a(x),b(y)的方式实现初始化. //2.第二种初始化的方式是直接在构造方法里面实现初始化. 案例如下: #include<iostream> //如果声明已经定义,边不会生成 class classA { private: int a; int b; public: //拷贝构造的规则,有两种方式实现初始化 //1.一个是通过在后面:a(x),b(y)的方式实现初始化 //2.第二种初始化的方式是直

在Ubuntu宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系,类似于PC上的ldd命令

在电脑上安装的Linux系统中,有一个ldd命令,可以查看对应的可执行文件或库文件依赖哪些库,但可执行文件或库文件要求与操作系统的编译器类型相同,即电脑是X86的GCC编译器,那么无法通过ldd命令查看ARM交叉编译器编译出来的可执行文件或库文件. 如果想在Ubuntu等Linux宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系,可以通过以下命令: [email protected]:$ arm-linux-readelf  -a  busybox |grep "Shared&qu

uva 12299 线段树 点相关的操作模板

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=502&page=show_problem&problem=3720 唯一值得一说的就是shift,变成更新点就行 这道题主要是测试下我做的算法模板 先贴模板 /**************************************************************** 2014.4 By Pilgr

相关元素操作

五.相关元素操作: var a = document.getElementById("id");找到a: var b = a.nextSibling,找a的下一个同辈元素,注意包含空格:(弟) var b = a.previousSibling,找a的上一个同辈元素,注意包含空格:(兄) var b = a.parentNode,找a的上一级父级元素:(父) var b = a.childNodes,找出来的是数组,找a的下一级子元素:(子) var b = a.firstChild,