当前位置: 首页 > news >正文

npm,yarn,pnpm,cnpm,nvm,npx包管理器常用命令

前端比较主流的包管理器主要有三个npm,yarn,pnpm

多层级依赖,通常发生在依赖之间存在复杂的版本要求时

  • 包 A 依赖于包 B@1.0.0

  • 包 B 依赖于包 C@2.0.0

  • 另一个包 D 也依赖于 C@3.0.0

一、NPM (Node Package Manager)

https://www.npmjs.cn/

npm 是 Node.js 默认的包管理工具,最早由 Node 社区开发并捆绑到 Node.js 中,因此使用最为广泛

  • npm v7+, 改进了扁平化管理,引入peer dependencies 处理

    • 自动安装 peer dependencies

    • 更严格的版本锁定

    • 改进了依赖解析算法

    • workspaces 支持

node_modules
├── package-A
├── package-B
├── lodash        // 主版本
└── .package-lock.json  // 更严格的版本锁定

(1)npm install的时候巨慢。特别是新的项目拉下来要等半天,删除node_modules,重新install的时候依旧如此。

(2)同一个项目,安装的时候无法保持一致性。由于package.json文件中版本号的特点,下面三个版本号在安装的时候代表不同的含义。 “5.0.3”表示安装指定的5.0.3版本,“~5.0.3”表示安装5.0.X中最新的版本,“^5.0.3”表示安装5.X.X中最新的版本。这就麻烦了,常常会出现同一个项目,有的同事是OK的,有的同事会由于安装的版本不一致出现bug。

"5.0.3",
"~5.0.3",
"^5.0.3"

二、cnpm

(1) cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm。

(2) npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,于是淘宝团队干了这事。来自官网:“这是一个完整 npmjs.org镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

  npm install -g cnpm --registry=https://registry.npm.taobao.org

三、Yarn

https://www.yarnpkg.cn/

CLI Reference | Yarn

  npm install -g yarn

Yarn 是一个 JavaScript 包管理工具,最早由 Facebook 推出,主要用于管理项目中的依赖包。和 npm 类似,yarn 解决了在 JavaScript 项目中下载、安装和管理依赖的需求,并在一定程度上改进了 npm 的一些缺点,比如性能、稳定性和安全性

  • 优点:

    • 采用扁平化优先 + 符号链接(符号链接是一个特殊的文件,它包含对另一个文件或目录的引用路径)的组合策略

    • 相同版本的包会被提升并复用

    • 不同版本通过符号链接保持正确的引用关系

  • 基本结构

node_modules/
├── package-A/                # 实际文件
├── package-B/                # 实际文件
├── lodash/                   # 提升到顶层的共享包
└── .bin/                     # 可执行文件的符号链接
  • 依赖共享案例

// 假设有以下依赖关系:
项目
├── package-A (依赖 lodash@4.0.0)
└── package-B (依赖 lodash@4.0.0)// Yarn 会创建这样的结构:
node_modules/
├── package-A/
│   └── node_modules/
│       └── lodash -> ../../../lodash  # 符号链接
├── package-B/
│   └── node_modules/
│       └── lodash -> ../../../lodash  # 符号链接
└── lodash/                            # 实际文件
  • 版本冲突处理

// 当存在版本冲突时:
项目
├── package-A (依赖 lodash@4.0.0)
└── package-B (依赖 lodash@3.0.0)// Yarn 会这样处理:
node_modules/
├── package-A/
│   └── node_modules/
│       └── lodash -> ../../../lodash    # 指向4.0.0
├── package-B/
│   └── node_modules/
│       └── lodash/                      # 本地安装3.0.0
└── lodash/                              # 4.0.0版本在顶层

四、PNPM(Performant NPM)

https://www.pnpm.cn/

pnpm 是一个更现代化的包管理工具,旨在解决 npm 和 yarn 的一些效率和资源管理问题

采用内容寻址存储系统,

pnpm 使用内容寻址(content-addressable storage)来存储依赖包。每个依赖包都会被哈希处理,并根据其内容生成唯一的存储地址。这样,即使多个项目依赖于相同版本的包,pnpm 也只需要存储一份,不会重复存储同样内容的文件

使用硬链接和符号链接共享依赖

pnpm 通过在 node_modules 中创建硬链接或符号链接(symlink),指向内容寻址存储中实际的依赖包。这样每个项目可以“共享”依赖,而不必为每个项目单独存储依赖包内容。

硬链接(Hard Link) :将文件内容链接到项目文件夹下,不占用额外磁盘空间。

符号链接(Symlink) :为特定版本的包创建路径映射,使项目代码能够准确找到每个依赖包版本的地址。

npm install -g pnpm     // 通过 npm 安装 pnpm
npx pnpm add -g pnpm    // 通过 npx 安装 pnpmpnpm add -g pnpm
  • 优点:

    • 显著节省磁盘空间

    • 安装速度快

    • 更严格的依赖管理

    • pnpm-lock.yaml 确保依赖版本一致

  • 缺点:

    不兼容一些使用传统 node_modules 结构的工具和插件:

    在 pnpm 中,每个依赖都有自己的隔离路径,某些工具、插件或构建系统可能会假设 node_modules 目录是扁平的,这可能导致兼容性问题。

    与本地开发和测试环境的潜在不兼容:

    有些项目依赖于本地 node_modules 结构,或者需要直接访问 node_modules 中的文件。在 pnpm 使用内容寻址和符号链接时,这可能会导致某些工具无法正常运行

  • 内容寻址存储

.pnpm-store/
└── v3/└── files/├── 00/                              # 前两位哈希值作为目录名│   └── deadbeef...                  # 包内容的哈希值└── ff/└── cafebabe...                  # 另一个包的哈希值
  • 依赖结构

node_modules/
├── .pnpm/
│   ├── react@17.0.2/
│   │   └── node_modules/
│   │       ├── react/                       # 实际文件(硬链接到 store)
│   │       └── loose-envify/                # react 的依赖
│   └── lodash@4.17.21/
│       └── node_modules/
│           └── lodash/                      # 实际文件(硬链接到 store)
├── react -> .pnpm/react@17.0.2/node_modules/react                 # 符号链接
└── lodash -> .pnpm/lodash@4.17.21/node_modules/lodash             # 符号链接

npm 与 yarn 及 pnpm常用命令

npm常用命令

// 查看 npm 全局安装过的包
npm list -g --depth 0
// 全局安装
npm install <package> -g
// 安装项目所有依赖
npm install
// 安装指定版本
npm install <package>@1.2.3
// 安装最新版本
npm i <package>@latest
// 删除全局的包
npm uninstall -g <package>
// 删除 node_modules 目录下面的包
npm uninstall <package>
// 更新指定包
npm update <package>
// 更新指定全局包
npm update -g <package>
// 更新本地安装的包
// 在 package.json 文件所在的目录中执行 npm update 命令
// 执行 npm outdated 命令。不应该有任何输出。

yarn 常用命令

// 查看 yarn 全局安装过的包
yarn global list --depth=0
// 全局安装
yarn global add <package>
// 安装所有依赖
yarn
// 安装指定版本
yarn add <package>@<version>
// 安装最新版本
yarn add <package>
// 删除包,会更新package.json和yarn.lock
yarn remove <package>
// 更新包
yarn upgrade
// 更新指定的包
yarn upgrade <package>
// 获取可更新的包列表选择更新
yarn upgrade-interactive --latest
// 更新全局依赖
yarn global upgrade --latest
// 更新全局依赖,有交互
yarn global upgrade-interactive --latest
// 列出已缓存的包
yarn cache list
// 查找缓存包的路径
yarn cache dir
// 清除缓存的包
yarn cache clean

五、npmyarn 和 pnpm 的比较

特性npmyarnpnpm
依赖管理方式扁平化管理,嵌套依赖树,可能重复安装扁平化管理和符号链接,同版本只安装一次基于硬链接和符号链接的内容寻址存储
安装速度最慢中等(并行安装)最快(得益于硬链接复用)
磁盘空间占用最大中等最小
依赖管理严格性低(可能存在幽灵依赖)中等高(严格的依赖树结构)
锁文件格式package-lock.jsonyarn.lockpnpm-lock.yaml
缓存机制基础缓存高效缓存基于内容寻址的全局存储
并行安装能力不支持 (npm5-) / 支持 (npm5+)支持支持
依赖提升策略部分提升全量提升不提升(严格按照依赖声明)
workspace 支持有限支持完整支持完整支持

基于这些特点:

  • 如果项目体积较小,团队成员 Node.js 经验不同,推荐使用 npm

  • 如果需要更好的性能和可靠性,推荐使用 yarn

  • 如果需要最严格的依赖管理、最小的磁盘空间占用,推荐使用 pnpm

六、npmyarn 和 pnpm 的常用命令对比

操作npmyarnpnpm
初始化项目npm inityarn initpnpm init
(-y为自动确认默认选项)npm init -yyarn init -ypnpm init -y
安装依赖npm installyarnpnpm install
安装单个依赖npm install <pkg>yarn add <pkg>pnpm add <pkg>
安装特定版本npm install <pkg>@<ver>yarn add <pkg>@<ver>pnpm add <pkg>@<ver>
全局安装依赖npm install -g <pkg>yarn global add <pkg>pnpm add -g <pkg>
安装开发依赖npm install <pkg> -Dyarn add <pkg> -Dpnpm add <pkg> -D
更新依赖npm update <pkg>yarn upgrade <pkg>pnpm update <pkg>
卸载依赖npm uninstall <pkg>yarn remove <pkg>pnpm remove <pkg>
查看已安装依赖npm listyarn listpnpm list
执行脚本npm run <script>yarn <script>pnpm run <script>
装指定注册源npm install --registry <url>yarn add <pkg> --registry <url>pnpm add <pkg> --registry <url>
清理缓存npm cache clean --forceyarn cache cleanpnpm store prune
创建锁定文件package-lock.jsonyarn.lockpnpm-lock.yaml
列出全局包npm list -g --depth=0yarn global listpnpm list -g --depth=0

七、npx

npx 是 npm 5.2.0 版本引入的一个命令行工具。它允许你在不全局安装包的情况下运行命令行工具。npx 可以直接运行安装在项目中的依赖包,而不需要手动设置环境变量或全局安装

八、nvm

Node Version Manager):nvm 是一个用于管理多个 Node.js 版本的工具。它允许你在同一台机器上安装和切换不同的 Node.js 版本。nvm 可以帮助开发人员在不同的项目中使用不同的 Node.js 版本,以适应项目的需求。

nvm install  8.10.0  //安装ndoe  8.10.0为node版本
nvm list  //查看nvm管理的node版本列表,正在使用的版本在列表前有星号标记
nvm use 8.10.0  //使用node指定版本 
nvm uninstall 8.10.0 //卸载指定node版本nvm-setup.zip 一个安装包,下载之后点击安装,连续点击下一步,无需任何配置,推荐
nvm-noinstall.zip 绿色免安装,使用之前需要配置,不推荐
Source code(zip):压缩的源码

相关文章:

npm,yarn,pnpm,cnpm,nvm,npx包管理器常用命令

前端比较主流的包管理器主要有三个npm&#xff0c;yarn&#xff0c;pnpm 多层级依赖&#xff0c;通常发生在依赖之间存在复杂的版本要求时 包 A 依赖于包 B1.0.0 包 B 依赖于包 C2.0.0 另一个包 D 也依赖于 C3.0.0 一、NPM (Node Package Manager) https://www.npmjs.cn/…...

使用mybatis实例类和MySQL表的字段不一致怎么办

在 MyBatis 中&#xff0c;当 Java 实体类的属性名与数据库表的字段名不一致时&#xff0c;会导致查询结果无法正确映射。以下是几种常见解决方案及代码示例&#xff1a; 1. 使用 resultMap 显式映射&#xff08;推荐&#xff09; 场景&#xff1a;字段名与属性名差异较大&…...

阿里发布新一代通义千问 Qwen3模型

近日&#xff0c;阿里巴巴发布了新一代通义千问 Qwen3 模型&#xff0c;一举登顶全球最强开源模型。 这是国内首个“混合推理模型”&#xff0c;将“快思考”与“慢思考”集成进同一个模型&#xff0c;大大节省算力消耗。 旗舰模型 Qwen3-235B-A22B 在代码、数学、通用能力等…...

React pros比较机制

将 count1作为prop传递给Memoson组件 引用类型情况 虽然list值没有发生变化&#xff0c;但是仍旧重新渲染 解决方法使用useMemo()函数&#xff0c;传递一个空依赖项 // 传递数据为引用类型 比较的是引用 // 使用useMemo函数改写、const list useMemo(()>{return [1,2,3]},[…...

Flowable7.x学习笔记(十七)审批我的待办

前言 前文完成了我的待办的查询功能&#xff0c;本文就在此基础上从源码解读到完成审批任务的功能&#xff0c;审批界面我就先不带表单&#xff0c;直接单纯审批通过&#xff0c;这里需要注意的事&#xff0c;审批的表单其实每个节点都可能需要不同的表单内容&#xff0c;后续要…...

HTTP 状态码详解:用途与含义

HTTP 状态码详解&#xff1a;用途与含义 HTTP 状态码详解&#xff1a;用途与含义1. &#xff08;2xx&#xff09;成功类200 OK201 Created204 No Content206 Partial Content 2. &#xff08;3xx&#xff09;重定向类301 Moved Permanently302 Found&#xff08;临时重定向&…...

AI日报 · 2025年05月02日 | 再见GPT-4!OpenAI CEO 确认 GPT-4 已从 ChatGPT 界面正式移除

1、OpenAI CEO 确认 GPT-4 已从 ChatGPT 界面正式移除 在处理 GPT-4o 更新问题的同时&#xff0c;OpenAI CEO Sam Altman 于 5 月 1 日在 X 平台发文&#xff0c;正式确认初代 GPT-4 模型已从 ChatGPT 主用户界面中移除。此举遵循了 OpenAI 此前公布的计划&#xff0c;即在 4 …...

ppt设计美化公司_杰青_长江学者_优青_青年长江学者_万人计划青年拔尖人才答辩ppt模板

WordinPPT / 持续为双一流高校、科研院所、企业等提供PPT制作系统服务。 / 近期PPT美化案例 - 院士增选、科学技术奖、杰青、长江学者特聘教授、校企联聘长江、重点研发、优青、青长、青拔.. 杰青&#xff08;杰出青年科学基金&#xff09; 支持已取得突出成果的45岁以下学…...

文章四《深度学习核心概念与框架入门》

文章4&#xff1a;深度学习核心概念与框架入门——从大脑神经元到手写数字识别的奇幻之旅 引言&#xff1a;给大脑装个"GPU加速器"&#xff1f; 想象一下&#xff0c;你的大脑如果能像智能手机的GPU一样快速处理信息会怎样&#xff1f;这正是深度学习的终极目标&…...

HTML5+JavaScript实现连连看游戏之二

HTML5JavaScript实现连连看游戏之二 以前一篇&#xff0c;见 https://blog.csdn.net/cnds123/article/details/144220548 连连看游戏连接规则&#xff1a; 只能连接相同图案&#xff08;或图标、字符&#xff09;的方块。 连线路径必须是由直线段组成的&#xff0c;最多可以有…...

2025年- H19-Lc127-48.旋转矩阵(矩阵)---java版

1.题目描述 2.思路 画出矩阵&#xff0c;新的旋转矩阵的列坐标等于原始矩阵的矩阵长度-i-1&#xff08;也就是减去当前遍历的i&#xff09;&#xff0c;前后对调。然后新的旋转矩阵的横坐标&#xff0c;是原始矩阵的列坐标。 3.代码实现 public class H48 {public void rota…...

深入理解 MyBatis 代理机制

在 Java 开发领域&#xff0c;MyBatis 是一款优秀的持久层框架&#xff0c;它极大地简化了数据库操作&#xff0c;提高了开发效率。其中&#xff0c;代理机制作为 MyBatis 的核心特性之一&#xff0c;在连接 Java 代码与数据库操作中发挥着关键作用。本文将深入探讨 MyBatis 代…...

游戏引擎学习第254天:重新启用性能分析

运行游戏并尝试让性能分析系统恢复部分功能 我们现在的调试系统这几天基本整理得差不多了&#xff0c;因此我们打算开始清理一些功能&#xff0c;比如目前虽然已经在收集性能分析数据&#xff0c;但我们没有办法查看或有效利用这些信息。今天的计划可能会围绕这方面展开&#…...

性能测试工具篇

文章目录 目录1. JMeter介绍1.1 安装JMeter1.2 打开JMeter1.3 JMeter基础配置1.4 JMeter基本使用流程1.5 JMeter元件作用域和执行顺序 2. 重点组件2.1 线程组2.2 HTTP取样器2.3 查看结果树2.4 HTTP请求默认值2.5 JSON提取器2.6 用户定义的变量2.7 JSON断言2.8 同步定时器&#…...

【Hive入门】Hive性能调优之Join优化:深入解析MapJoin与Sort-Merge Join策略

目录 前言 1 Hive Join操作基础 1.1 Join操作的类型与挑战 1.2 Hive Join执行机制 2 MapJoin优化策略 2.1 MapJoin原理 2.2 MapJoin适用场景 2.3 MapJoin关键参数 3 Sort-Merge Join优化策略 3.1 Sort-Merge Join原理 3.2 Sort-Merge Join优势 3.3 关键配置参数 3…...

【Unity】使用XLua实现C#访问Lua文件

先引入XLua文件中的Plugins和XLua文件夹于Unity项目的Asset文件中 XLua_github链接 建立Lua虚拟机&#xff1a;LuaEnv luaEnv new LuaEnv(); 关闭虚拟机&#xff0c;及时释放资源&#xff1a;luaEnv.Dispose(); Resources文件夹下加载lua文件&#xff08;假设文件路径为Resour…...

AXI中的out of order和interleaving的定义和两者的差别?

AXI中的out of order和interleaving的定义和两者的差别 摘要&#xff1a;在 AXI (Advanced eXtensible Interface) 协议中&#xff0c;Out-of-Order 和 Interleaving 是两个与事务处理顺序和数据传输相关的概念&#xff0c;它们都与 AXI 协议支持的多事务并发处理能力有关&…...

生产级RAG系统一些经验总结

本文将探讨如何使用最新技术构建生产级检索增强生成(RAG)系统&#xff0c;包括健壮的架构、向量数据库(Faiss、Pinecone、Weaviate)、框架(LangChain、LlamaIndex)、混合搜索、重排序器、流式数据接入、评估策略以及实际部署技巧。 引言&#xff1a;检索增强生成的力量 大型语…...

sftp连接报错Received message too long 168449893

sftp连接报错Received message too long 168449893 一、openEuler传文件报错二、分析问题三、解决问题endl 一、openEuler传文件报错 [rootRocky9-12 ~]# scp apache-tomcat-10.1.33.tar.gz root10.0.0.14:Authorized users only. All activities may be monitored and report…...

Java中修饰类的关键字

Java中修饰类的关键字 在web编程课上&#xff0c;老师提问了Java中各种修饰类的关键字的用途和区别&#xff0c;一时间我头脑空白&#xff0c;现在课后重新梳理一遍Java中修饰类的各种关键字的区别和用法。在Java编程中&#xff0c;修饰类的关键字起着至关重要的作用&#xff…...

2025年人工智能火爆技术总结

2025年人工智能火爆技术总结&#xff1a; 生成式人工智能 生成式人工智能可生成高质量的图像、视频、音频和文本等多种内容。如昆仑万维的SkyReels-V2能生成无限时长电影&#xff0c;其基于扩散强迫框架&#xff0c;结合多模态大语言模型和强化学习等技术&#xff0c;在运动动…...

脑机接口技术:开启人类与机器的全新交互时代

在科技飞速发展的今天&#xff0c;人类与机器的交互方式正经历着前所未有的变革。从最初的键盘鼠标&#xff0c;到触摸屏&#xff0c;再到语音控制&#xff0c;每一次交互方式的升级都极大地提升了用户体验和效率。如今&#xff0c;脑机接口&#xff08;Brain-Computer Interfa…...

Arduino程序函数详解与实际案例

一、Arduino程序的核心架构与函数解析 Arduino程序的核心由两个函数构成:setup() 和 loop()。这两个函数是所有Arduino代码的骨架,它们的合理使用决定了程序的结构和功能。 1.1 setup() 函数:初始化阶段 setup() 函数在程序启动时仅执行一次,用于完成初始化配置,例如设置…...

2025年RAG技术发展现状分析

2025年&#xff0c;大模型RAG&#xff08;检索增强生成&#xff09;技术经历了快速迭代与深度应用&#xff0c;逐渐从技术探索走向行业落地&#xff0c;同时也面临安全性和实用性的新挑战。以下是其发展现状的综合分析&#xff1a; 一、技术架构的持续演进 从单一到模块化架构 …...

C++11新特性_范围-based for 循环

based for 循环介绍 范围 - based for 循环&#xff08;Range-based for loop&#xff09;是 C11 引入的一种新的 for 循环语法&#xff0c;它可以更简洁地遍历容器和数组。 遍历数组&#xff1a;定义了一个整数数组 arr&#xff0c;使用范围 - based for 循环 for (int num :…...

小牛电动:荣登央视舞台,引领智能出行新潮流

在这个科技飞速发展的时代&#xff0c;出行方式也在不断地变革与创新。而在两轮电动车领域&#xff0c;有一个品牌凭借其卓越的技术、独特的设计和优质的服务脱颖而出&#xff0c;那就是小牛电动。近日&#xff0c;小牛电动荣登央视舞台&#xff0c;成为备受瞩目的焦点&#xf…...

Three.js在vue中的使用(一)-基础

Three.js 是一个基于 WebGL 的 JavaScript 3D 图形库,它简化了在网页中创建和渲染 3D 场景的复杂性。Three.js 提供了丰富的功能,如光照、材质、几何体、动画、控制器等,使得开发者可以快速构建交互式的 3D 应用。 🧠 Three.js 原理概述 1. WebGL 基础 Three.js 底层使用…...

开发板型号 ESP32-DevKitC-32模块型号 ESP32-WROOM-32 和主控芯片 ESP32-D0WDQ6-V3

以下是关于开发板型号 ESP32-DevKitC-32、模块型号 ESP32-WROOM-32 和主控芯片 ESP32-D0WDQ6-V3 的详细介绍&#xff1a; 开发板型号&#xff1a;ESP32-DevKitC-32 概述&#xff1a;ESP32-DevKitC 是乐鑫推出的一款基于 ESP32 模组的小型开发板&#xff0c;板上模组的绝大部…...

【C语言练习】015. 声明和初始化指针

015. 声明和初始化指针 015. 声明和初始化指针1. 声明指针示例1:声明一个指向整数的指针2. 初始化指针示例2:将指针初始化为`NULL`示例3:将指针初始化为某个变量的地址示例4:将指针初始化为动态分配的内存地址3. 使用指针访问和修改变量的值示例5:使用指针访问和修改变量的…...

手撕哈希表

引入&#xff1a;unordered_set /map是什么&#xff1f; 库里面除开set和map&#xff0c;还有unordered_set 和 unordered_map&#xff0c;区别在于&#xff1a; ①&#xff1a;set和map的底层结构是红黑树&#xff0c;而unordered_set和unordered_map的底层是哈希表 ②&…...

编程题python常用技巧-持续

1.字典 1.1排序 在Python中&#xff0c;要按照字典的值进行排序&#xff0c;可以按照以下步骤操作&#xff1a; 方法说明 ‌获取键值对列表‌&#xff1a;使用 dict.items() 获取字典的键值对视图。‌排序键值对‌&#xff1a;使用 sorted() 函数&#xff0c;并通过 key 参…...

大模型蒸馏技术

提问&#xff1a;请写一篇关于蒸馏大模型的详细解说&#xff08;论文&#xff09;&#xff0c;要求配有图并不少于8000字。 Deepseek&#xff1a; 大模型蒸馏技术&#xff1a;原理、方法与产业实践 ——基于知识压缩与效率优化的深度解析 目录 引言&#xff1a;大模型时代的…...

深入理解C语言中的整形提升与算术转换

深入理解C语言中的整形提升与算术转换 一.整形提升&#xff1a;概念与原理 在C语言中&#xff0c;整形提升&#xff08;Integer Promotion&#xff09;是一个重要但容易被忽视的概念。它指的是在表达式中&#xff0c;任何小于int类型的整型&#xff08;如char、short&#xf…...

企业经营系统分类及功能详解

近年来互联网行业下行&#xff0c;招聘少&#xff0c;要求离谱&#xff0c;年龄学历背景已经卡的死死的&#xff0c;技术再突出也没用。 但对于软件开发来说&#xff0c;互联网只是一小部分&#xff0c;企业级系统软件开发&#xff0c;虽然不如互联网大起大落&#xff0c;但重…...

IRF2.0IRF3.1

1、IRF3定义 IRF3是一种能够提高网络接入层的接入能力和管理效率的纵向网络整合虚拟化技术&#xff0c;采用IEEE 802.1BR标准协议实现。IRF3将多台PEX设备&#xff08;Bridge Port Extender&#xff09;连接到父设备&#xff08;Parent device&#xff09;上&#xff0c;将每台…...

【C++】类和对象【中下】

目录 一、类与对象1、运算符重载1.2 赋值运算符重载1.3 <<运算符和>>运算符1.4 前置与后置 2、 const成员函数3、取地址运算符重载 个人主页<—请点击 C专栏<—请点击 一、类与对象 本期的主题是一步步完善日期类的编写&#xff0c;将要讲解的知识融入在代…...

ThreadLocal详解

什么是 ThreadLocal&#xff1f;​ ThreadLocal 是 Java 中的一个工具类&#xff0c;用于为每个线程提供独立的变量副本&#xff0c;使得每个线程可以独立操作自己的变量&#xff0c;避免多线程环境下的数据竞争问题。它的核心思想是​​线程封闭​​&#xff08;Thread Confi…...

Vue3 + OpenLayers 企业级应用进阶

1. 企业级架构设计 1.1 微前端架构集成 // src/micro-frontend/map-container.ts import { Map } from ol; import { registerMicroApps, start } from qiankun;export class MapMicroFrontend {private map: Map;private apps: any[];constructor(map: Map) {this.map map;…...

如何提升自我执行力?

提升个人执行力是一个系统性工程&#xff0c;需要从目标管理、习惯养成、心理调节等多方面入手。 以下是具体方法&#xff0c;结合心理学和行为科学原理&#xff0c;帮助你有效提升执行力&#xff1a; 一、明确目标&#xff1a;解决「方向模糊」问题 1. 用SMART原则设定目标 …...

L3-041 影响力

下面给出基于“切比雪夫距离”&#xff08;Chebyshev 距离&#xff09;之和的高效 O(nm) 解法。核心思想是把 ∑ u 1 n ∑ v 1 m max ⁡ ( ∣ u − i ∣ , ∣ v − j ∣ ) \sum_{u1}^n\sum_{v1}^m\max\bigl(|u-i|,|v-j|\bigr) u1∑n​v1∑m​max(∣u−i∣,∣v−j∣) 拆成两个…...

【ESP32】st7735s + LVGL使用-------图片显示

【ESP32】st7735s + LVGL使用-------图片显示 1、文件准备2、工程搭建3、代码编写4、应用部分5、函数调用6、显示效果移植部分参考这个博客: 【ESP32】st7735s + LVGL移植 1、文件准备 本次图片放在内部存储,先使用转换工具将要显示的图片转换好。 文件名保存为xx.c,xx这…...

MERGE存储引擎(介绍,操作),FEDERATED存储引擎(介绍,操作),不同存储引擎的特性图

目录 MERGE存储引擎(合并) 介绍 创建表 语法 示例 查看.mrg文件 操作 查询结果 示例 重建逻辑表 FEDERATED存储引擎 结盟 介绍 ​编辑 应用场景 操作 开启 创建表 对本地表进行数据插入 EXAMPLE存储引擎 不同存储引擎的特性​编辑 MERGE存储引擎(合并) 介绍…...

初学者如何学习AI问答应用开发范式

本文是根据本人2年大模型应用开发5年小模型开发经验&#xff0c;对AI问答应用的开发过程进行总结。 技术范式 现在超过80%的AI问答是 提示词 大模型&#xff0c; 然后就是RAG 方案&#xff0c;这两种无疑是主流方案。 1、提示词大模型 适合于本身业务不超过大模型的知识范围…...

GESP2024年6月认证C++八级( 第二部分判断题(1-5))

判断题2&#xff1a; #include <iostream> #include <iomanip> using namespace std;int main() {double a 1e308;double b 1e-10;double orig_a a, orig_b b;a a b;b a - b;a a - b;cout << fixed << setprecision(20);cout << "…...

npm命令介绍(Node Package Manager)(Node包管理器)

文章目录 npm命令全解析简介基础命令安装npm&#xff08;npm -v检插版本&#xff09;初始化项目&#xff08;npm init&#xff09;安装依赖包&#xff08;npm install xxx、npm i xxx&#xff09;卸载依赖包&#xff08;npm uninstall xxx 或 npm uni xxx、npm remove xxx&…...

小刚说C语言刷题—1602总分和平均分

1.题目描述 期末考试成绩出来了&#xff0c;小明同学语文、数学、英语分别考了 x、y、z 分&#xff0c;请编程帮助小明计算一下&#xff0c;他的总分和平均分分别考了多少分&#xff1f; 输入 三个整数 x、y、z 分别代表小明三科考试的成绩。 输出 第 11行有一个整数&…...

python类私有变量

在Python中&#xff0c;要将一个属性定义为类的内部属性&#xff08;也就是私有属性&#xff09;&#xff0c;通常会在属性名称前加一个下划线&#xff08;_&#xff09;或两个下划线&#xff08;__&#xff09;。这两种方式有不同的效果&#xff1a; 单下划线&#xff08;_&a…...

前端如何转后端

前端转后端是完全可行的&#xff0c;特别是你已经掌握了 JavaScript / TypeScript&#xff0c;有一定工程化经验&#xff0c;这对你学习如 Node.js / NestJS 等后端技术非常有利。下面是一条 系统化、实践导向 的路线&#xff0c;帮助你高效完成从前端到后端的转型。 ✅ 一、评…...

数字智慧方案5976丨智慧农业顶层设计建设与运营方案(59页PPT)(文末有下载方式)

详细资料请看本解读文章的最后内容。 资料解读&#xff1a;智慧农业顶层设计建设与运营方案 在现代农业发展进程中&#xff0c;智慧农业成为推动农业转型升级、提升竞争力的关键力量。这份《智慧农业顶层设计建设与运营方案》全面且深入地探讨了智慧农业的建设现状、需求分析、…...

软件工程国考

软件工程-同等学力计算机综合真题及答案 &#xff08;2004-2014、2017-2024&#xff09; 2004 年软工 第三部分 软件工程 &#xff08;共 30 分&#xff09; 一、单项选择题&#xff08;每小题 1 分&#xff0c;共 5 分&#xff09; 软件可用性是指&#xff08; &#xff09…...