package-lock.json的作用:

锁版本,确保项目在后续拉去中,安装依赖包时依赖包的版本始终是统一的

在npm install时会自动生成package-lock.json

package.json与package-lock.json相同时,npm安装包时以package-lock.json为准,当两者不同时,npm install时会以package.json为准,并同时更新package-lock.json(未经过本人验证)。

没必要锁版本时可以不用package-lock.json锁版本。

package-lock.json与package.json的不同:

package-lock.json记录的是依赖树,记录了依赖模块之间的完整依赖关系。package.json记录的是依赖项,不能锁定依赖的依赖。

额外补充:

npm vs yarn:

它们都是包管理工具,npm是node默认的包版本工具。

yarn的出现最早是为了解决npm的缺点:下载依赖慢、不能确保的版本统一等问题。

yarn与npm最重要的几点不同:

yarn是并行安装依赖模块,npm是按队列形式安装前面的包安装完成后面的包才能安装;

yarn对已经安装过的包会有缓存,npm每次安装都需要去网上下载。

升级后的npm与yarn一样,也具备了锁版本的功能,可以保证在不同环境下拉取到的项目,在安装依赖包时,版本是一致的。

参考资料:

升级间接依赖:https://juejin.im/post/5b6908ba6fb9a04f9c43e7b8

谈yarn: https://www.bittiger.io/blog/post/BQGg7FzRPHjh84iu9

yarn vs npm:https://juejin.im/post/5b6908ba6fb9a04f9c43e7b8

yarn vs npm外文:https://blog.risingstack.com/yarn-vs-npm-node-js-package-managers/

package-lock.json冲突问题:https://www.jianshu.com/p/1d2e2f8c9ab2

项目中使用package-lock.json锁版本问题的更多相关文章

  1. 项目中使用同一dll的不同版本

    在一个项目中,因为使用了一些插件,这些插件使用了不同版本的log4net,有1.2版本,有2.0版本的.当运行的时候发生冲突. 解决办法:在config中加入如下的配置 <dependentAs ...

  2. 在Springboot + Mybaitis-plus 项目中利用Jackson实现json对java多态的(反)序列化

    Jackson允许配置多态类型处理,当JSON面对的转换对象是一个接口.抽象类或者一个基类的时候,可以通过一定配置实现JSON的转换.在实际项目中,Controller层接收入参以及在Dao层将对象以 ...

  3. .NET Core类库项目中如何读取appsettings.json中的配置

    这是一位朋友问我的问题,写篇随笔回答一下.有2种方法,一种叫丑陋的方法 —— IConfiguration ,一种叫优雅的方法 —— IOptions . 1)先看丑陋的方法 比如在 RedisCli ...

  4. 如何将项目中的package.json文件中的模块更新到最新版本

    有时候自己之前开发的项目回头运行的时候发行好多模块的版本不是最新的,此时想更为为最新版本,使用如下命令即可: npm i -g npm-check-updates ncu -u npm install

  5. c#中多线程同步Lock(锁)的研究以及跨线程UI的操作

    本文只针对C#中,多线程同步所用到的锁(lock)作为研究对象.由于想更直观的显示结果,所以,在做demo的时候,就把多线程通过事件操作UI的代码也写了出来,留作备忘和分享吧. 其实多线程的同步,使用 ...

  6. c#中多线程同步Lock(锁)的研究以及跨线程UI的操作 (转)

    https://www.cnblogs.com/tommyheng/p/4104552.html 本文只针对C#中,多线程同步所用到的锁(lock)作为研究对象.由于想更直观的显示结果,所以,在做de ...

  7. 项目中遇到的死锁问题: Lock wait timeout exceeded; try restarting transaction

    最近项目中频繁出现  Lock wait timeout exceeded; try restarting transaction这个错误,把我们弄得痛苦不堪啊,为了解决问题,上网上找好多资料,终于把 ...

  8. 在WebStorm环境中给nodejs项目中添加packages

    照前文 http://www.cnblogs.com/wtang/articles/4133820.html  给电脑设置了WebStorm的IDE的nodejs开发环境.新建了个express的网站 ...

  9. React-Native集成到已有项目中的总结

    安装Python 从官网下载并安装python 2.7.x(3.x版本不行) 安装node.js 从官网下载node.js的官方V6.X.X版本或更高版本.安装完成后检测是否安装成功:node -v ...

随机推荐

  1. npm run dev的错误

    一直出现这个问题,有试过重新npm安装之类的,也试过替换文件,后来才知道原来是我在初始目录下执行run,应该cd到该项目下在run,如图 firsttest是我的项目名字

  2. 解决 error: Your local changes to the following files would be overwritten by merge:XXXX

    版权声明:这可是本菇凉辛辛苦苦原创的,转载请记得带上我家地址,不要忘记了哈 ... https://blog.csdn.net/u011314442/article/details/78852547 ...

  3. 关于Hibernate级联更新插入信息时提示主键不为空的问题“org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1 ”

    org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual ...

  4. js中的正则

    闭包: 函数在调用的时候会形成私有的作用域,对内部的变量起到保护的作用,这就是闭包: 变量销毁: 1.人为销毁 : var a = 12:   a = null: 2.孜然销毁 : 函数在调用完之后, ...

  5. 两种语言实现设计模式(C++和Java)(三:策略模式)

    策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化.也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异.用策略模式 ...

  6. Classnotfoundexception 与 noClassDelfaultError的区别

    ClassNotFoundException 这个异常特别常见,就是class找不到异常,一般的问题就是: 1 调用class的forName方法时,找不到指定的类 2 ClassLoader 中的 ...

  7. 安装mingw编译器

    1.下载地址:https://sourceforge.net/projects/mingw/files/latest/download?source=top3_dlp_t5 2. 安装下载的(ming ...

  8. SQL注入之Sqli-labs系列第四十六关(ORDER BY注入)

    0X1查看页面 0x2源码 <?php include("../sql-connections/sql-connect.php"); $id=$_GET['sort']; i ...

  9. UVA - 558 Wormholes (SPEA算法模板题)

    先给出题面:https://vjudge.net/problem/UVA-558 题意描述:给你含n个点以及m条边的图,让你判断在这个图中是否存在负权回路. 首先,我们来介绍什么是SPEA算法 SPF ...

  10. 软件测试_MYSQL

    # MYSQL## 基础知识点### 进入数据库:在偏好设置中打开 — 打开终端 /usr/local/mysql/bin/mysql -u root -p### 可以把完整的命令分成几行打,完后用分 ...