• package.json,package-lock.json,yarn.lock


    package.json


    一般每个项目的根目录下面都会有一个package.json文件,这个文件定义了项目所需要的各种模块/包,以及项目的配置信息(比如名称、版本、许可证等)。

    npm install 命令根据这个配置文件,自动下载所需的模块/包,也就是配置项目所需的运行和开发环境。

    当执行npm install 命令时ndoe会先从dependencies内容,然后根据读取的内容与node_modules中的模块进行对比,没有则下载,已有的会检查版本更新。

    package.json文件只记录npm install 方式安装的模块信息,不会记录这些模块依赖的包

    例如我们安装了express,在package.json中只会记录express的信息,而express又依赖了其他的一些包,此事package.json是不会记载express依赖包的信息。

    • 如果手动修改了 package.json 文件中已有模块的版本,直接执行npm install不会安装新指定的版本,只能通过npm install xxx@yy更新

    package-lock.json


    package-lock.json文件只有npm5之后才有,package-lock.json是当 安装包,node_modules 或 package.json 发生变化时自动生成的文件。

    在npm5之后的版本不需要添加— — save ,它就会自动保存这个依赖信息。

    package-lock.json文件锁定所有模块的版本号,包括主模块和所有依赖子模块,

    当执行npm install的时候,node从package.json文件读取模块名称,从package-lock.json文件中获取版本号,然后进行下载或者更新

    例如:我们使用了jquery1.x版本,如果没有锁定版本,npm install时会自动安装最新版,jq1.x版本和jq2.x版本是有重大差异的,此时自动安装2.x版本可能会导致某些问题。

    • 发布的模块不会包含 package-lock.json 文件
    • 这个文件主要功能是确定当前安装的包的依赖,以便后续重新安装的时候生成相同的依赖,而忽略项目开发过程中有些依赖已经发生的更新
    • 以后直接改 package.json 文件相应模块的版本号,再执行npm install不会更新了,你只能手动用npm install xxx@yy指定版本号来安装,
    • 它会自动更新 package-lock.json 文件。直接执行npm install时,如果不存在 package-lock.json 文件,它会根据安装模块后的 node_modules 目录结构来创建;如果已经存在 package-lock.json 文件,则它只会根据 package-lock.json 文件指定的结构来下载模块,并不会理会 package.json 文件

    yarn.lock


    NPM 和 YARN 是两个不同的包管理系统, 其中 NPM 生成 package-lock.json, YARN 生成 yarn.lock, 这两个文件记录当前项目所依赖的各个包的版本。当我们执行 yarn 命令或者添加依赖包命令后,Yarn 都会在项目根目录下自动生成一个 yarn.lock 文件。在使用 Yarn 安装、升级、删除依赖项目时,会自动更新到 yarn.lock 文件中。一般我们不会去手动编辑这个文件,因为很容易破坏这个文件。

    为了在多台机器之间获得一致的安装结果,Yarn 可能会需要比 package.json 文件中配置的依赖项更多的信息。它需要准确存储每一个依赖项的安装版本(类似package-lock.json一个是npm生成一个是yarn生成)


    摘抄:https://blog.csdn.net/qq_41558265/article/details/103566073
    https://blog.csdn.net/Umbrella_Um/article/details/100064795

  • 相关阅读:
    未来:spring响应式编程 Hands-On Reactive Programming in Spring 5(三),spring事件监听
    React Native 环境搭建
    蓝桥杯第18481题——皇家守卫(单调栈+线段树)
    HTML5 新的语义化标签
    MySQL进阶
    【无标题】
    Oracle 中的伪列
    JAVA错误 找不到或无法加载主类
    大语言模型面试心路历程【0 offer版】
    懒说
  • 原文地址:https://blog.csdn.net/weixin_50736511/article/details/127574137