关于Nodejs的面试问题

package.json 依赖项版本号前面的 ~ ^ 有什么用?

  • ~ 会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
  • ^ 会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
  • 不写前缀,只写版本号就不会有更新问题

项目中使用 package-lock.json 锁版本问题

  • 项目中使用package-lock.json锁版本问题
  • npm install 生成的package-lock.json是什么文件?有什么用?
  • npm依赖版本变动引发的惨案

peerDependencies 有什么用

假设一个项目有如下依赖项:

{
  "dependencies": {
    "a": "1.0.0",
    "b": "1.0.0",
    "c": "1.0.0",
  }
}

并且 b 和 c 也各自有依赖项 a。那么下载依赖后的项目目录是这样的:

.
├── project
│   └── node_modules
│       ├── a
│       ├── b
│       │   └── nodule_modules
│       │       └── a
│       └── c
│       │   └── nodule_modules
│       │       └── a

这样会有一个问题,依赖 a 会被重复安装 3 次。这时可以使用 peerDependencies,它可以避免相同的依赖被重复安装。

现在只需要在 b 和 c 的 package.json 文件加上以下代码:

{
  "peerDependencies": {
    "a": "1.0.0"
  }
}

这样在安装时就可以避免重复安装依赖了。现在下载依赖后的目录为:

.
├── helloWorld
│   └── node_modules
│       ├── a
│       ├── b
│       └── c

  • 如果用户显式依赖了核心库,则可以忽略各插件的 peerDependency 声明;
  • 如果用户没有显式依赖核心库,则按照插件 peerDependencies 中声明的版本将库安装到项目根目录中;

注意,如果主项目的 a 依赖项和 b、c 安装的 a 依赖项版本不同,有可能会报错。

例如 b 和 c 是一个插件的时候,它们依赖于某个核心依赖才能工作。当 b c 的核心依赖版本和项目的核心依赖版本不同时,就会报错。这时使用 peerDependencies 就可以很好的解决这个问题。

参考资料: * 一文搞懂peerDependencies * 浅谈npm 的依赖与版本

垃圾回收机制

内存回收

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

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

相关文章

使用 Express 框架构建的 Node.js web 应用程序

使用 Express 框架构建的 Node.js web 应用程序 ├── config │ └── config.js ├── middlewares │ └── errorHandler.js ├── routes │ ├── index.js │ ├── postRoutes.js │ └── userRoutes.js ├── .env ├── .gitignore ├── app.js ├…

新手必看:页面设计与网页设计的区别及应用指南

页面设计和网页设计都是创建网页的过程,但页面设计的焦点和目的与网页设计不同。页面设计往往更注重网站的视觉和交互设计,而网页设计则侧重于整个网站的架构和功能设计。本文将具体介绍页面设计与网页设计的区别,新手小看必看! …

腾讯宣布混元文生图大模型开源: Sora 同架构,可免费商用

5月14日,腾讯宣布旗下的混元文生图大模型全面升级并对外开源,目前已在 Hugging Face 平台及 Github 上发布,包含模型权重、推理代码、模型算法等完整模型,可供企业与个人开发者免费商用。 这是业内首个中文原生的DiT架构文生图开…

Linux下安装netcore

1.下载net core运行时 网址:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0 2.传到linux服务器指定文件 3.解压运行时:tar zxf aspnetcore-runtime-8.0.4-linux-x64.tar.gz -C …/usr/bin(太老的版本会报错,需要加东西&…

YOLOv8_seg训练流程-原理解析[实例分割理论篇]

本篇将介绍一下YOLOv8实例分割网络的训练流程,同样在看此篇文章之前先去看一下预测流程YOLOv8_seg预测流程-原理解析[实例分割理论篇]-CSDN博客 ,还有目标检测任务的训练流程YOLOv8训练流程-原理解析[目标检测理论篇]-CSDN博客 ,这两篇都是前置课程,下图是YOLOv8实例分割的…

八字排盘软件-​无敌八字排盘软件

功能介绍 1.完全免费使用,即使用不需要付费且无任何限制。 2.同时推出手机版电脑版,两版本数据互通互用,即电脑版的数据可以备份到手机版上导入,手机版的数据也可以备份到电脑版上恢复导入,方便手机和电脑共用的朋友。…

基于Springboot汽车租赁预约管理系统

一:功能介绍 本系统是Springboot项目采用的技术栈主要有Spring、mybaits、springboot、mysql数据库 功能角色主要分为管理员、超级管理员、用户等几个角色 二:功能截图 三:源码获取

想让普通金额数字显示为逗号分隔的数字?

使用vueelement 后台传的数据 1.编写方法 放在method当中 /** 数字转换显示格式 */priceFormat (num, n) {n n || 2;let symbol ",";if (num null) return num;if (typeof num ! number) throw new TypeError(num参数应该是一个number类型);if (n < 0) thro…

【Docker与Termux】闲置旧安卓手机上的NAS无缝部署方案

最近有了新手机,旧手机也闲置了,由于之前一直在寻找平价的NAS替代方案,旧手机在抽屉躺了N天后,我决定让它重新焕发光彩,努力工作,继续拉磨。 这个时代的旧手机可以满足NAS的基本配置需求,内存、硬盘、内置电源、WIFI模块、快速接口,简直是理想中的NAS形态,但是散热、R…

240W 宽电压输入 AC/DC 导轨式开关电源——TPR/SDR-240-XS 系列

TPR/SDR-240-XS 导轨式开关电源&#xff0c;额定输出功率为240W&#xff0c;产品输入范围&#xff1a;85-264VAC。提供24V、48V输出&#xff0c;具有短路保护&#xff0c;过载保护等功能&#xff0c;并具备高效率&#xff0c;高可靠性、高寿命、更安全、更稳定等特点&#xff0…

Java编程思想

面向对象编程(OOP)-CSDN博客 面向对象(OOP)的主要特点-CSDN博客 接口(Interface)和抽象类(Abstract Class)编程思想-CSDN博客 接口(Interface)和抽象类(Abstract Class)区别-CSDN博客 抽象类(Abstract Class)-CSDN博客 普通类和抽象类-CSDN博客 内部类编程思想-CSDN博客 …

如何查看MySQL binlog日志

1、查看MySQL是否开启binlog日志 SQL&#xff1a;show variables like ‘%log_bin%’; log_bin:on 是开启状态 若是OFF&#xff0c;则需要开启binlog日志。 开启方式&#xff1a;打开mysql配置文件my.cnf&#xff0c;在[mysqlId]下面增加 log-binmysql-bin 查看binlog日志 …

登录页面后数据库返回信息失败

在登录之后 页面反馈 找不到数据库用户信息,请重新登录 并且服务器日志显示 之前以为是数据库哪里设置问题 然后检查后主键设置正确的 但是这个insert user info failed 很奇怪 因为实在登录成功之后出错 不应该出现插入用户信息才对 然后检查用户登录函数 发现 本来是_ut.…

比特币能否跨过量子时代的这道槛?

比特币作为最知名的加密货币&#xff0c;其安全性和可靠性备受关注。随着量子计算机的出现&#xff0c;传统的加密算法面临着前所未有的挑战。今天想跟大家探讨一下&#xff0c;比特币能否通过升级来应对量子计算机的威胁&#xff0c;并分析这种升级的可能性、技术挑战以及潜在…

振弦式应变计的灵敏系数k范围探讨

振弦式应变计是一种广泛应用于工程结构健康监测的重要设备&#xff0c;其灵敏系数k是衡量其性能的关键指标。本文将探讨振弦式应变计的灵敏系数k的一般范围&#xff0c;并分析影响灵敏系数的因素。 一、振弦式应变计的工作原理 振弦式应变计通过测量振弦在受力作用下的振动频率…

MQ消息积压,把我整吐血了

我之前在一家餐饮公司待过两年&#xff0c;每天中午和晚上用餐高峰期&#xff0c;系统的并发量不容小觑。为了保险起见&#xff0c;公司规定各部门都要在吃饭的时间轮流值班&#xff0c;防止出现线上问题时能够及时处理。 我当时在后厨显示系统团队&#xff0c;该系统属于订单…

外卖订餐总后台系统原型

页面数量&#xff1a;共 210 页 源文件格式&#xff1a;rp格式&#xff0c;兼容 Axure RP 9/10 应用领域&#xff1a;O2O领域、网上订餐、外卖行业 文章展示不够全面&#xff0c;如有兴趣请联系作者 该原型作品为外卖订餐总后台管理系统&#xff0c;定位偏向美团外卖与饿了么一…

研发管理之认识DevOps

文章目录 一、什么是DevOps二、DevOps的背景和起源三、DevOps的特点和价值1、特点&#xff1a;2、价值&#xff1a; 四、DevOps如何帮助提高软件交付速度和质量 一、什么是DevOps DevOps&#xff08;Development和Operations的组合词&#xff09;是一组过程、方法与系统的统称…

MySQL的msi格式安装

一、下载链接 MySQL :: Download MySQL Installer (Archived Versions) 二、安装步骤 ①选择自定义安装 ②选择要安装的产品 ③安装依赖环境 ④安装 ⑤点击下一步 ⑥配置 ⑦设置密码 ⑧命名 ⑨数据存放路径 ⑩安装配置 ①①配置环境变量 ①②验证 方法一&#xff1a; 方法二…

批量文件夹随机重命名:一键操作,提升管理效率的技巧

在数字化时代&#xff0c;文件夹的管理是日常工作中不可或缺的一部分。对于拥有大量文件夹的用户来说&#xff0c;批量文件夹重命名是提高工作效率的关键步骤。而随机重命名不仅能增加文件组织的多样性&#xff0c;还能在一定程度上保护隐私。本文将介绍云炫文件管理器如何通过…