node中npm依赖安装顺序,package-lock.json文件详解

news2024/12/21 19:19:45

前置知识:需要先了解package.json 和package-lock.json的基本知识和使用方法,可以参考这篇文章。

npm依赖安装的逻辑和顺序可以参考这篇文章

理论看完了我们来看一下实际项目中的是啥样的,上面文章所讲的逻辑都会在npm install之后,表现在package-lock.json这个文件中。

前置知识

1. npm2 和npm3 咋区分

哈哈,别想太多,其实就是npm的版本号,npm2就是npm 的2.x.x的版本,npm3就是npm的3.x.x版本。npm2 到npm3有一个很大的改变,正如上述文章提到的,2 -> 3 算是一个很重要的分割线,所以你不经常看到比人说npm4,npm5啥的,因为核心逻辑改动不大。

npm 和node版本都是对应的,请看node的官网,我们项目中经常说的是node版本,所以你不熟悉npm的版本也很正常。

好了,现在我们再继续来研究一下package-lock.json这个文件。请看官方文档

不同npm版本的lock文件的具体字段也不相同,但是大同小异,我们可以知道关键的一个【dependencies】是什么意思和结构就可以了 

 假设项目package.json中只有一个包,而且这个包没有子依赖,那么install之后很简单

我们再来看一个复杂的,比如vue包

 让我们来一个一个的简单看一下

第一种是没有子依赖的包,安装起来显而易见

第二种,是有子依赖的@vue/compiler-dom,会把子依赖【比如:@vue/compiler-core】拿出来放在和@vue/compiler-dom同一个层级,这就是上述文章中说的npm3相对于npm2的优化,避免重复安装同一个依赖。怎么样很简单吧。

 

总结,我们要学会看官方文档,比如node和npm的官网里面有很多不了解不熟悉的知识,注意要看英文版的官网哦。

Node.jsNode.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.https://nodejs.org/ennpm DocsDocumentation for the npm registry, website, and command-line interfacehttps://docs.npmjs.com/

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/505183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序员面试金典16.*

文章目录 16.01 交换数字16.02单词频率16.03交点16.04 井字游戏16.05 阶乘尾数16.06 最小差16.07 最大数值16.08 整数的英文表示16.09 运算16.10 生存人数16.11 跳水板16.13 平分正方形16.14 最佳直线(待定)16.15珠玑妙算16.16部分排序16.17连续数列16.1…

Hadoop HDFS的API操作

客户端环境准备 hadoop的 Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:\)。 配置HADOOP_HOME环境变量 配置Path环境变量。 不能放在包含有空格的目录下,cmd 输入hadoop显示此时不应有 \hadoop-3.0.0\bin\。我放在…

关于linux中防火墙的命令

文章目录 一、linux 6.5 下二、linux 7.0 下 (CentOs7.3)常用命令 三、关于端口的一些命令四、一些状况 linux不同版本防火墙是不同的,命令如下 一、linux 6.5 下 service iptables status ## 查看防火墙状态 service iptables start ## 开启防火墙 service iptab…

谁还在AI焦虑?

时至今日,人们对GPT 为首的诸多AI, 大有热情消退的迹象。 与2个月前相比,简直恍如隔世。 这也进步一部印证了“山洞隐喻” 人类始终对未知充满恐惧和焦虑。 曾经人们忧心忡忡,整天讨论AI, 取代人类工作之后&…

如何用ChatGPT做新品上市推广方案策划?

该场景对应的关键词库(28个): 品牌、产品信息、新品、成分、属性、功效、人群特征、客户分析、产品定位、核心卖点、推广策略、广告、公关、线上推广、线下活动、合作伙伴、资源整合、预算、执行计划、监测、评估、微调方案、价值主张、营销策略、热点话…

第四十七章 Unity 布局(中)

在上一章节中我给父元素Panel添加了Horizontal Layout Group组件,并且添加了两个Text元素。 我们发现两个Text UI 元素在水平方向上面依次放置在Panel的最上面。由于Panel的宽度为300,而两个Text的总宽度为 160 160 320,因此两个Text 超出了…

C++入门知识(下)

目录 一、内联函数 1.1内联函数的概念 1.2内联函数的使用 1.3内联函数的特性 1.4宏的优缺点 1.5C中可替代宏的技术 二、auto关键字 2.1什么是auto关键字 2.2auto简介 2.3auto的使用细则 2.4auto不能推导的场景 三、基于范围的for循环(C11) 3.…

大屏只用来做汇报?知道这6个应用场景,直接升职加薪!

五一假几个朋友小聚了一下,好久没联系了,现在才知道大家从事行业五花八门的。知道我从事IT行业好几年,他们非要让我讲讲现在异常火爆的大屏,说是所在企业单位都在研究这玩意儿,有的业务人员焦虑不已不知道如何下手&…

Lenovo m93 mini 电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件型号驱动情况 主板Lenovo m93 mini 处理器Intel i5-4590T 2.20GHz (35w) 4-core/4-thread已驱动 内存8GB (2x4) DDR3 1600MHz已驱动 硬盘2.5" SSD Samsung 8…

《Linux 内核设计与实现》11. 定时器和时间管理

文章目录 内核中时间的概念节拍率:HZ理想的 HZ 值高 HZ 的优势高 HZ 的劣势 jiffiesjiffies 的内部表示jiffies 的回绕用户空间和 HZ 硬时钟和定时器实时时钟系统定时器 时钟中断处理程序实际时间定时器使用定时器定时器竞争条件实现定时器 延迟执行忙等待短延迟sch…

跨境商城APP开发需要注意的问题

随着全球化的趋势,跨境电商发展迅猛,越来越多的企业开始进军跨境市场。而跨境商城APP已经成为跨境电商非常重要的一部分。在开发跨境商城APP时,需要注意以下问题: 1.多语言支持 跨境商城APP需要支持不同国家和地区的语言&#x…

在基于Android以及Jetson TK平台上如何写32位的Thumb-2指令

由于Android以及Jetson TK的编译工具链中的汇编器仍然不支持大部分的32位Thumb-2指令,比如 add.w,因此我们只能通过手工写机器指令码来实现想要的指令。下面我将简单地介绍如何在ARM GCC汇编器中手工去写机器指令码。 对于GCC或Clang的汇编器&#xff0…

es6 学习笔记-1

学习视频:尚硅谷Web前端ES6教程,涵盖ES6-ES11_哔哩哔哩_bilibili 一、介绍 ES:全称为EcmaScript,是脚本语言的规范 ECMAScript: 由Ecma国际通过ECMA-262标准化的脚本程序设计语言。 es6兼容性:ECMAScript 6 compa…

adb logcat 保存日志文件到本地

指令 adb logcat > logcat.log例如:例如:adb logcat > D:\logcat.log 注意window中直接输入可能会出现log文件打开显示乱码问题; 请打开cmd检查 输入 chcp 如图 查看结果 如果不是65001 则 执行 chcp 65001 之后执行 例如&#x…

antd 中日期组件添加左侧日期范围选择

一、产品需求 产品有这样一个需求, 在实时的日期组件左侧添加一个快捷时间范围选择,并且选择后,窗口不会自动关闭。 大致样式长这样: 二、需求拆解 拆解一下这个需求,需要满足三个要点: ① 快捷时间范围…

Linux学习之Shell(一)

Shell概述 1)Linux提供的Shell解析器有 [xiaominghadoop101 ~]$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh2)bash和sh的关系 [xiaominghadoop101 bin]$ ll | grep bash -rwxr…

LinkFlow CDP洞察能力升级,结合订单开启营销新趋势

4月26日,悠易科技LinkFlow在春季产品发布会上对其洞察产品能力进行了升级。 在技术赋能以人为本的营销5.0阶段,伴随技术的发展,消费者很容易接触到不同的产品和服务,也可以很方便的通过社交网络以及各种社群找到跟自己有相同兴趣…

第四十一章 Unity 输入框 (Input Field) UI

本章节我们学习输入框 (Input Field),它可以帮助我们获取用户的输入。我们点击菜单栏“GameObject”->“UI”->“Input Field”,我们调整一下它的位置,效果如下 我们在层次面板中发现,这个InputField UI元素包含两个子元素&…

PMP项目管理-[第十章]沟通管理

沟通管理知识体系: 规划沟通管理: 10.1 沟通维度划分 10.2 核心概念 定义:通过沟通活动(如会议和演讲),或以工件的方式(如电子邮件、社交媒体、项目报告或项目文档)等各种可能的方式来发送或接受消息 在项目沟通中,需要…

聊聊并发编程的12种业务场景

前言 并发编程是一项非常重要的技术,无论在面试,还是工作中出现的频率非常高。 并发编程说白了就是多线程编程,但多线程一定比单线程效率更高? 答:不一定,要看具体业务场景。 毕竟如果使用了多线程&…