美文网首页
package.json和package-lock.json文件

package.json和package-lock.json文件

作者: 来了啊小老弟 | 来源:发表于2019-12-18 16:25 被阅读0次

    npm5以前是不会有package-lock.json这个文件的。可以单独升级npm而不升级node.js
    npm5以后才加入了这个文件
    当你安装包的时候,npm都会生成或者更新package-lock.json这个文件。
    npm5以后的版本安装包不需要加–save参数,它会自动保存依赖信息。
    当你安装包的时候,会自动创建或者是更新package-lock.json这个文件
    1.package-lock.json这个文件会保存node_modules中所有包的信息(版本、下载地址)这样的话重新npm installde的时候速度就可以提升。
    2.从文件来看,有一个lock称之为锁,这个lock是用来锁定版本的,如果项目依赖了1.1.1版本,如果你重新install其实会下载最新版本,而不是1.1.1,我们的目的希望可以锁住1.1.1这个版本,所以这个package-lock.json这个文件的另一个作用就是锁定版本版本号,防止自动升级。

    package.json文件记录你项目中所需要的所有模块。当你执行npm install的时候,node会先从package.json文件中读取所有dependencies信息,然后根据dependencies中的信息与node_modules中的模块进行对比,没有的直接下载,已有的检查更新(最新版本的nodejs不会更新,因为有package-lock.json文件,下面再说)。另外,package.json文件只记录你通过npm install方式安装的模块信息,而这些模块所依赖的其他子模块的信息不会记录。

    package-lock.json文件锁定所有模块的版本号,包括主模块和所有依赖子模块。当你执行npm install的时候,node从package.json文件读取模块名称,从package-lock.json文件中获取版本号,然后进行下载或者更新。

    因此,正因为有了package-lock.json文件锁定版本号,所以当你执行npm install的时候,node不会自动更新package.json文件中的模块,必须用npm install packagename(自动更新小版本号)或者npm install packagename@x.x.x(指定版本号)来进行安装才会更新,package-lock.json文件中的版本号也会随着更新。

    附:当package.json与package-lock.json都不存在,执行"npm install"时,node会重新生成package-lock.json文件,然后把node_modules中的模块信息全部记入package-lock.json文件,但不会生成package.json文件,此时,你可以通过"npm init --yes"来生成package.json文件
    ————————————————
    版权声明:本文为CSDN博主「qq_34412985」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_34412985/article/details/85333862

    相关文章

      网友评论

          本文标题:package.json和package-lock.json文件

          本文链接:https://www.haomeiwen.com/subject/squunctx.html