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

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

文章目录

  • npm命令全解析
    • 简介
    • 基础命令
      • 安装npm(npm -v检插版本)
      • 初始化项目(npm init)
      • 安装依赖包(npm install xxx、npm i xxx)
      • 卸载依赖包(npm uninstall xxx 或 npm uni xxx、npm remove xxx)
      • 列出已安装的包(npm list)
    • 依赖管理精解
      • 依赖类型区分(生产环境依赖dependencies、开发环境依赖devDependencies、宿主环境依赖peerDependencies、可选依赖optionalDependencies)
      • 版本控制策略
      • 依赖更新
        • 检查过时的包(npm outdated)
        • 更新特定包(npm update lodash)
        • 更新所有包(npm update)
    • 脚本与自动化
      • 自定义脚本
      • 钩子脚本(prebuild、postbuild编译前后打印)
    • 发布与共享
      • 创建可发布包
        • 注册npm账号(npm adduser)
        • 发布包(npm publish)
        • 发布特定标签版本(`npm publish --tag beta`)
      • 包版本管理
        • 补丁版本号+1 (1.0.0 -> 1.0.1)(npm version patch)
        • 次版本号+1 (1.0.0 -> 1.1.0)(npm version minor)
        • 主版本号+1 (1.0.0 -> 2.0.0)(npm version major)
    • 高级技巧
      • npm缓存操作
        • 清除缓存(`npm cache clean --force`)
        • 验证缓存(npm cache verify)
      • 包信息查询
        • 查看包信息(npm info lodash)
        • 搜索包(npm search keyword)
      • 安全审计
        • 检查安全漏洞(npm audit)
        • 自动修复问题(npm audit fix)
        • 仅修复开发依赖(`npm audit fix --only=dev`)
      • 私有注册表配置
        • 设置私有注册表(npm config set registry https://registry.company.com/)
        • 恢复默认注册表(npm config set registry https://registry.npmjs.org/)
      • 全局包管理
        • 全局安装包(npm install -g package)
        • 全局卸载包(npm uninstall -g package)
        • 查看全局安装位置(npm root -g)
    • 高效工作流
      • 交互式更新依赖
        • 交互式选择更新的依赖(`npx npm-check -u`)
      • 并行运行脚本(npm-run-all)
      • 依赖可视化
        • 安装依赖可视化工具(`npm install -g npmgraph`)
        • 生成依赖图(`npmgraph <package-name>`)
      • 本地包开发与链接(npm link)
    • 定义
    • 命令
    • 最佳实践
      • 锁定依赖版本
        • 生成或更新package-lock.json(npm ci)
        • package-lock.json示例
      • 精简安装策略
        • 仅安装生产依赖(`npm install --production`)
        • 使用ci命令精确还原依赖(npm ci)
      • 环境检查与诊断(npm doctor)

npm命令全解析

简介

npm (Node Package Manager) 是JavaScript运行时环境Node.js的默认包管理工具,为开发者提供了一种高效管理项目依赖的方式。作为世界上最大的软件注册表,npm包含了超过100万个开源包,极大地促进了JavaScript生态系统的繁荣发展。

基础命令

安装npm(npm -v检插版本)

npm随Node.js一起安装,可通过以下命令检查版本:

npm -v

在这里插入图片描述

初始化项目(npm init)

创建新项目时,首先需要初始化package.json文件:

npm init
# 或使用默认值快速创建
npm init -y

安装依赖包(npm install xxx、npm i xxx)

# 安装包并保存到dependencies
npm install lodash
# 简写形式
npm i lodash# 安装指定版本
npm install lodash@4.17.21# 安装开发依赖
npm install webpack --save-dev
# 或简写
npm i webpack -D

关于开发依赖,参考文章:npm开发依赖(仅在开发阶段需要,生产环境不需要的包)(npm install xxx --save-dev、npm i xxx -D、npm install --production)

卸载依赖包(npm uninstall xxx 或 npm uni xxx、npm remove xxx)

# 卸载包并从dependencies中移除
npm uninstall lodash
# 简写形式
npm rm lodash
# 或
npm remove lodash# 卸载开发依赖
npm uninstall webpack --save-dev
# 或简写
npm rm webpack -D

列出已安装的包(npm list)

# 列出所有已安装的包
npm list# 只显示顶层依赖
npm list --depth=0# 查看特定包
npm list lodash

依赖管理精解

依赖类型区分(生产环境依赖dependencies、开发环境依赖devDependencies、宿主环境依赖peerDependencies、可选依赖optionalDependencies)

{"dependencies": {"react": "^17.0.2"    // 生产环境依赖},"devDependencies": {"webpack": "^5.52.0"  // 开发环境依赖},"peerDependencies": {"react": ">=16.8.0"   // 宿主环境依赖},"optionalDependencies": {"fsevents": "^2.3.2"  // 可选依赖,安装失败不会导致npm install失败}
}

版本控制策略

"lodash": "^4.17.21"  // ^表示兼容补丁和小版本更新
"express": "~4.17.1"  // ~表示兼容补丁版本更新
"moment": "4.17.1"    // 精确版本
"webpack": ">=5.0.0"  // 大于等于指定版本

依赖更新

检查过时的包(npm outdated)
npm outdated
更新特定包(npm update lodash)
npm update lodash
更新所有包(npm update)
npm update

脚本与自动化

自定义脚本

package.json中定义常用操作:

{"scripts": {"start": "node server.js",            // 启动应用"dev": "nodemon server.js",           // 开发模式"build": "webpack --mode production", // 构建生产版本"test": "jest",                       // 运行测试"lint": "eslint ."                    // 代码检查}
}

运行脚本:

npm run dev
# start、test、stop、restart可以省略run
npm test

钩子脚本(prebuild、postbuild编译前后打印)

{"scripts": {"prebuild": "echo '构建前执行'",  // build前自动执行"build": "webpack","postbuild": "echo '构建后执行'"  // build后自动执行}
}

发布与共享

创建可发布包

注册npm账号(npm adduser)
发布包(npm publish)
发布特定标签版本(npm publish --tag beta

包版本管理

补丁版本号+1 (1.0.0 -> 1.0.1)(npm version patch)
次版本号+1 (1.0.0 -> 1.1.0)(npm version minor)
主版本号+1 (1.0.0 -> 2.0.0)(npm version major)

高级技巧

npm缓存操作

清除缓存(npm cache clean --force
验证缓存(npm cache verify)

包信息查询

查看包信息(npm info lodash)
npm info lodash
# 查看特定版本信息
npm info lodash versions
搜索包(npm search keyword)
npm search react-component

安全审计

检查安全漏洞(npm audit)
自动修复问题(npm audit fix)
仅修复开发依赖(npm audit fix --only=dev

私有注册表配置

设置私有注册表(npm config set registry https://registry.company.com/)
恢复默认注册表(npm config set registry https://registry.npmjs.org/)

全局包管理

全局安装包(npm install -g package)
# 全局安装包
npm install -g typescript
# 或简写
npm i -g typescript
全局卸载包(npm uninstall -g package)
npm uninstall -g typescript
查看全局安装位置(npm root -g)
npm root -g

高效工作流

交互式更新依赖

交互式选择更新的依赖(npx npm-check -u

并行运行脚本(npm-run-all)

使用npm-run-all包简化多脚本运行:

{"scripts": {"lint:js": "eslint .",                      // JS代码检查"lint:css": "stylelint '**/*.css'",         // CSS代码检查"lint": "npm-run-all --parallel lint:*",    // 并行运行所有lint脚本"dev:server": "nodemon server.js",          // 后端开发服务"dev:client": "webpack serve",              // 前端开发服务"dev": "npm-run-all --parallel dev:*"       // 并行运行所有dev脚本}
}

依赖可视化

安装依赖可视化工具(npm install -g npmgraph
生成依赖图(npmgraph <package-name>

本地包开发与链接(npm link)

定义

npm link 是用于本地包开发和测试的强大工具,主要解决以下问题:

  1. 开发阶段测试:当你开发自己的 npm 包时,可以通过 npm link 在不发布到 npm 仓库的情况下,在其他项目中测试这个包

  2. 工作原理

    • 在包目录执行 npm link 会在全局 node_modules 创建一个符号链接
    • 在使用该包的项目中执行 npm link package-name 创建指向全局链接的本地链接
  3. 实际使用场景

    • 同时开发多个相互依赖的包
    • 修改第三方库并在本地测试
    • 团队协作时共享尚未发布的包
  4. 优势:对本地包的任何修改都会立即反映在使用它的项目中,无需重新安装,大大提高了开发效率

解除链接可以使用 npm unlink package-namenpm uninstall package-name 命令。

命令

# 在本地包目录中执行,创建全局链接
npm link# 在需要使用本地包的项目中执行
npm link package-name

最佳实践

锁定依赖版本

生成或更新package-lock.json(npm ci)
package-lock.json示例
{"name": "project-name","lockfileVersion": 2,"requires": true,"packages": {"node_modules/lodash": {"version": "4.17.21","resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz","integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="}}
}

精简安装策略

仅安装生产依赖(npm install --production
使用ci命令精确还原依赖(npm ci)

环境检查与诊断(npm doctor)

npm doctor

通过本文全面掌握npm命令,能够显著提升JavaScript项目开发效率和质量。从基础命令到高级技巧,npm为现代JavaScript开发提供了强大而灵活的工具链支持。

相关文章:

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…...

linux python3安装

1 安装依赖环境 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 2 mkdir -p /usr/python3 3 cd usr/python3; tar -zxvf Python-3.8.3.tgz;cd Python-3.8.3 4 ./confi…...

软件测评中心如何保障软件质量与性能?评测范围和标准有哪些?

软件测评中心对保障软件质量与性能有关键作用&#xff0c;它像软件世界里的质量卫士&#xff0c;会评测各类软件&#xff0c;能为用户选出真正优质好用的软件&#xff0c;我将从多个方面向大家介绍软件测评中心。 评测范围 软件测评中心的评测范围很广&#xff0c;它涵盖了常…...

从MCP基础到FastMCP实战应用

MCP(https://github.com/modelcontextprotocol) MCP&#xff08;模型上下文协议&#xff09; 是一种专为 基于LLM的工具调用外部工具而设计的协议 &#xff0c; 本质上是 LLM ↔ 工具之间的RPC&#xff08;远程过程调用&#xff09; 的一种安全且一致的处理方式&#xff0c; 是…...

【云备份】服务端工具类实现

1.文件实用工具类设计 不管是客户端还是服务端&#xff0c;文件的传输备份都涉及到文件的读写&#xff0c;包括数据管理信息的持久化也是如此&#xff0c;因此首先设 计封装文件操作类&#xff0c;这个类封装完毕之后&#xff0c;则在任意模块中对文件进行操作时都将变的简单化…...

如何在Cursor中使用MCP服务

前言 随着AI编程助手的普及&#xff0c;越来越多开发者选择在Cursor等智能IDE中进行高效开发。Cursor不仅支持代码补全、智能搜索&#xff0c;还能通过MCP&#xff08;Multi-Cloud Platform&#xff09;服务&#xff0c;轻松调用如高德地图API、数据库等多种外部服务&#xff…...

PB的框架advgui反编译后控件无法绘制的处理(即导入pbx的操作步骤)

advguiobjects.pbl反编译后&#xff0c;涉及到里面一个用pbni开发的一个绘制对象需要重新导入才可以。否则是黑色的无法绘制控件&#xff1a; 对象的位置在&#xff1a; 操作&#xff1a; 导入pbx文件中的对象。 恢复正常&#xff1a; 文章来源&#xff1a;PB的框架advgui反编译…...

第 11 届蓝桥杯 C++ 青少组中 / 高级组省赛 2020 年真题,选择题详细解释

一、选择题 第 2 题 在二维数组按行优先存储的情况下&#xff0c;元素 a[i][j] 前的元素个数计算如下&#xff1a; 1. **前面的完整行**&#xff1a;共有 i 行&#xff0c;每行 n 个元素&#xff0c;总计 i * n 个元素。 2. **当前行的前面元素**&#xff1a;在行内&#x…...

Python 装饰器基础知识科普

装饰器定义与基本原理 装饰器本质上是一个可调用的对象&#xff0c;它接收另一个函数&#xff08;即被装饰的函数&#xff09;作为参数。装饰器可以对被装饰的函数进行处理&#xff0c;之后返回该函数&#xff0c;也可以将其替换为另一个函数或可调用对象。 代码示例理解 有…...

数字基带信号和频带信号的区别解析

数字基带信号和数字频带信号是通信系统中两种不同的信号形式&#xff0c;它们的核心区别在于是否经过调制以及适用的传输场景。以下是两者的主要区别和分析&#xff1a; 1. 定义与核心区别 数字基带信号&#xff08;Digital Baseband Signal&#xff09; 未经调制的原始数字信号…...

Nginx Proxy Manager 中文版安装部署

目录 Nginx Proxy Manager 中文版安装部署教程一、项目简介1.1 主要功能特点1.2 项目地址1.3 系统架构与工作原理1.4 适用场景 二、系统要求2.1 硬件要求2.2 软件要求 三、Docker环境部署3.1 CentOS系统安装Docker3.2 Ubuntu系统安装Docker3.3 安装Docker Compose 四、安装Ngin…...

类和对象(拷贝构造和运算符重载)下

类和对象(拷贝构造和运算符重载)下 这一集的主要目标先是接着上一集讲完日期类。然后再讲一些别的运算符的重载&#xff0c;和一些语法点。 这里我把这一集要用的代码先放出来:(大家拷一份代码放在编译器上先) Date.h #include <iostream> #include <cassert> …...

Codeforces Round 1008 (Div. 2) C

C 构造 题意&#xff1a;a的数据范围大&#xff0c;b的数据范围小&#xff0c;要求所有的a不同&#xff0c;考虑让丢失的那个a最大即可。问题变成&#xff1a;构造一个最大的a[i] 思路&#xff1a;令a2是最大的,将a1,a3,a5....a2*n1&#xff0c;置为最大的b&#xff0c;将a4,a…...

操作系统(1)多线程

在当今计算机科学领域&#xff0c;多线程技术已成为提高程序性能和响应能力的关键手段。无论是高性能计算、Web服务器还是图形用户界面应用程序&#xff0c;多线程都发挥着不可替代的作用。本文将全面介绍操作系统多线程的概念、实现原理、同步机制以及实际应用场景&#xff0c…...

系统架构设计师:设计模式——创建型设计模式

一、创建型设计模式 创建型模式抽象了实例化过程&#xff0c;它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类&#xff0c;而一个对象创建型模式将实例化委托给另一个对象。 随着系统演化得越来越依赖于对象复合而不是类…...

使用Set和Map解题思路

前言 Set和Map这两种数据结构,在解决一些题上&#xff0c;效率很高。跟大家简单分享一些题以及如何使用Set和Map去解决这些题目。 题目链接 136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 138. 随机链表的复制 - 力扣&#xff08;LeetCode&#xff09; 旧…...

Java 算法入门:从基础概念到实战示例

在计算机科学领域&#xff0c;算法如同魔法咒语&#xff0c;能够将无序的数据转化为有价值的信息。对于 Java 开发者而言&#xff0c;掌握算法不仅是提升编程能力的关键&#xff0c;更是解决复杂问题的核心武器。本文将带领你走进 Java 算法的世界&#xff0c;从基础概念入手&a…...

【大模型】图像生成:ESRGAN:增强型超分辨率生成对抗网络的革命性突破

深度解析ESRGAN&#xff1a;增强型超分辨率生成对抗网络的革命性突破 技术演进与架构创新核心改进亮点 环境配置与快速入门硬件要求安装步骤 实战全流程解析1. 单图像超分辨率重建2. 自定义数据集训练3. 视频超分处理 核心技术深度解析1. 残差密集块&#xff08;RRDB&#xff0…...

记录搭建自己的应用中心-需求看板搭建

记录搭建自己的应用中心-需求看板搭建 人员管理新增用户组织用户登录和操作看板状态看板任务通知任务详情 人员管理 由于不是所有人都有应用管理权限&#xff0c;所以额外做了一套应用登录权限&#xff0c;做了一个新的组织人员表&#xff0c;一个登录账户下的所有应用人员共享…...

探秘数据结构:构建高效算法的灵魂密码

摘要 数据结构作为计算机科学的基石&#xff0c;其设计与优化直接影响算法效率、资源利用和系统可靠性。本文系统阐述数据结构的基础理论、分类及其核心操作&#xff0c;涵盖数组、链表、栈、队列、树、图、哈希表与堆等经典类型。深入探讨各结构的应用场景与性能对比&#xf…...

多节点监测任务分配方法比较与分析

多监测节点任务分配方法是分布式系统、物联网&#xff08;IoT&#xff09;、工业监测等领域的核心技术&#xff0c;其核心目标是在资源受限条件下高效分配任务&#xff0c;以优化系统性能。以下从方法分类、对比分析、应用场景选择及挑战等方面进行系统阐述&#xff1a; 图1 多…...

spring-boot-maven-plugin 将spring打包成单个jar的工作原理

spring-boot-maven-plugin 是 Spring Boot 的 Maven 插件&#xff0c;它的核心功能是将 Spring Boot 项目打包成一个独立的、可执行的 Fat JAR&#xff08;包含所有依赖的 JAR 包&#xff09;。以下是它的工作原理详解&#xff1a; 1. 默认 Maven 打包 vs Spring Boot 插件打包…...

盐化行业数字化转型规划详细方案(124页PPT)(文末有下载方式)

资料解读&#xff1a;《盐化行业数字化转型规划详细解决方案》 详细资料请看本解读文章的最后内容。 该文档聚焦盐化行业数字化转型&#xff0c;全面阐述了盐化企业信息化建设的规划方案&#xff0c;涵盖战略、架构、实施计划、风险及效益等多个方面&#xff0c;旨在通过数字化…...

开源革命:从技术共享到产业变革——卓伊凡的开源实践与思考-优雅草卓伊凡

开源革命&#xff1a;从技术共享到产业变革——卓伊凡的开源实践与思考-优雅草卓伊凡 一、开源的本质与行业意义 1.1 开源软件的定义与内涵 当卓伊凡被问及”软件开源是什么”时&#xff0c;他给出了一个生动的比喻&#xff1a;”开源就像将食谱公之于众的面包师&#xff0c…...

解锁 C++26 的未来:从语言标准演进到实战突破

一、C26 的战略定位与开发进展 C26 的开发已进入功能冻结阶段&#xff0c;预计 2026 年正式发布。作为 C 标准委员会三年一迭代的重要版本&#xff0c;其核心改进聚焦于并发与并行性的深度优化&#xff0c;同时在内存管理、元编程等领域实现重大突破。根据 ISO C 委员会主席 H…...

terraform实现本地加密与解密

在 Terraform 中实现本地加密与解密&#xff08;不依赖云服务&#xff09;&#xff0c;可以通过 OpenSSL 或 GPG 等本地加密工具配合 External Provider 实现。以下是完整的安全实现方案&#xff1a; 一、基础架构设计 # 文件结构 . ├── secrets │ ├── encrypt.sh …...

黄雀在后:外卖大战新变局,淘宝+饿了么开启电商大零售时代

当所有人以为美团和京东的“口水战”硝烟渐散&#xff0c;外卖大战告一段落时&#xff0c;“螳螂捕蝉&#xff0c;黄雀在后”&#xff0c;淘宝闪购联合饿了么“闪现”外卖战场&#xff0c;外卖烽火再度燃起。 4 月30日&#xff0c;淘宝天猫旗下即时零售业务“小时达”正式升级…...

基本功能学习

一.enum枚举使用 E_SENSOR_REQ_NONE 的定义及用途 在传感器驱动开发或者电源管理模块中&#xff0c;E_SENSOR_REQ_NONE通常被用来表示一种特殊的状态或请求模式。这种状态可能用于指示当前没有活动的传感器请求&#xff0c;或者是默认初始化状态下的一种占位符。 可能的定义…...

59常用控件_QComboBox的使用

目录 代码示例:使用下拉框模拟麦当劳点餐 代码示例&#xff1a;从文件中加载下拉框的选项 QComboBox表示下拉框 核心属性 属性说明currentText当前选中的文本currentIndex当前选中的条目下标。 从 0 开始计算。如果当前没有条目被选中&#xff0c;值为 -1editable是否允许修改…...

卡洛诗西餐的文化破圈之路

在餐饮市场的版图上&#xff0c;西餐曾长期被贴上“高端”“舶来品”“纪念日专属”的标签&#xff0c;直到卡洛诗以高性价比西餐的定位破局&#xff0c;将意大利风情与家庭餐桌无缝衔接。这场从异国符号到家常选择的转型&#xff0c;不仅是商业模式的创新&#xff0c;更是一部…...

Python-57:Base32编码和解码问题

问题描述 你需要实现一个 Base32 的编码和解码函数。 相比于 Base32&#xff0c;你可能更熟悉 Base64&#xff0c;Base64 是非常常见的用字符串形式表示二进制数据的方式&#xff0c;在邮件附件、Web 中的图片中都有广泛的应用。 Base32 是 Base64 的变种&#xff0c;与 Bas…...

【排序算法】八大经典排序算法详解

一、直接选择排序&#xff08;Selection Sort&#xff09;算法思想算法步骤特性分析 二、堆排序&#xff08;Heap Sort&#xff09;算法思想关键步骤特性分析 三、直接插入排序&#xff08;Insertion Sort&#xff09;算法思想算法步骤特性分析 四、希尔排序&#xff08;Shell …...

近端策略优化PPO详解:python从零实现

&#x1f9e0; 向所有学习者致敬&#xff01; “学习不是装满一桶水&#xff0c;而是点燃一把火。” —— 叶芝 我的博客主页&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 欢迎点击加入AI人工智能社区&#xff01; &#x1f680; 让我们一起努力&#xff0c;共创…...

C# System.Text.Json终极指南(十):从基础到高性能序列化实战

一、JSON序列化革命:System.Text.Json的架构优势 1.1 核心组件解析 1.2 性能基准测试(.NET 8) 操作Newtonsoft.JsonSystem.Text.Json性能提升简单对象序列化1,200 ns450 ns2.7x大型对象反序列化15 ms5.2 ms2.9x内存分配(1k次操作)45 MB12 MB3.75x二、基础序列化操作精解 …...

Centos7.9 安装mysql5.7

1.配置镜像&#xff08;7.9的镜像过期了&#xff09; 2.备份原有的 CentOS 基础源配置文件 sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 3.更换为国内镜像源 sudo vi /etc/yum.repos.d/CentOS-Base.repo 将文件内容替换为以下内容&am…...

Qt指南针

Qt写的指南针demo. 运行结果 滑动调整指针角度 实现代码 h文件 #ifndef COMPASS_H #define COMPASS_H#include <QWidget> #include <QColor>class Compass : public QWidget {Q_OBJECT// 可自定义属性Q_PROPERTY(QColor backgroundColor READ backgroundColor WRI…...

杜邦分析法

杜邦分析法(DuPont Analysis)是一种用于分析企业财务状况和经营绩效的综合分析方法,由美国杜邦公司在20世纪20年代率先采用,故得名。以下是其相关内容介绍: 核心指标与分解 净资产收益率(ROE):杜邦分析法的核心指标,反映股东权益的收益水平,用以衡量公司运用自有资本…...

给U盘加上图标

电脑插入U盘后&#xff0c;U盘的那个标志没有特色&#xff0c;我们可以换成有意义的照片作为U盘图标&#xff0c;插上U盘就能看到&#xff0c;多么地浪漫。那该如何设置呢&#xff1f;一起来看看吧 选择一张ICO格式的图片到U盘里 PNG转ICO - 在线转换图标文件PNG转ICO - 免费…...

人工智能对未来工作的影响

人工智能对未来工作的影响是多方面的&#xff0c;既包括对就业结构的改变&#xff0c;也涉及工作方式、职业技能需求以及社会政策的调整。以下是对人工智能对未来工作影响的详细分析&#xff1a; 一、就业结构的变革 岗位替代与消失 人工智能技术在许多领域展现出强大的自动化…...

RocketMQ常见面试题一

1. RocketMQ 是什么?它的核心组件有哪些? 答:RocketMQ 是阿里巴巴开源的一款分布式消息中间件,支持高吞吐、低延迟、高可用的消息发布与订阅。 核心组件: NameServer:轻量级注册中心,管理 Broker 的元数据(路由信息),无状态。 Broker:消息存储和转发节点,分为 Mas…...

C++调试(壹):初步认识WinDbg和dump文件

目录 1.前言 2.WinDbg是什么&#xff1f; 3.​WinDbg安装 4.Dump文件是什么&#xff1f; ​ 5.生成Dump文件的场景 前言 这是一个关于C调试的博客&#xff0c;该系列博客主要是讲解如何使用WinDbg工具结合dump文件调试程序。在日常开发过程中&#xff0c;我们往往无法完…...

centos7 离线安装python3 保留python2

一、事前准备&#xff1a; &#xff08;1&#xff09;查看centos具体版本 cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core) &#xff08;2&#xff09;查看linux中当前python版本 centos7 默认安装python2.7.5 &#xff08;3&#xff09;查看python3的依赖&#…...

【dify—9】Chatflow实战——博客文章生成器

目录 一、创建Chatflow 二、创建变量 三、添加时间工具 四、编写提示词 五、回复输出 六、运行 第一部分 安装difydocker教程&#xff1a;【difydocker安装教程】-CSDN博客 第二部分 dock重装教程&#xff1a;【dify—2】docker重装-CSDN博客 第三部分 dify拉取镜像&…...

华为OD机试真题——斗地主之顺子(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C、GO六种语言的最佳实现方式&#xff1b; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析&#xff1b; 本文收录于专栏&#xff1a;《2025华为OD真题目录…...

3.2/Q2,Charls最新文章解读

文章题目&#xff1a;Internet usage elevates elderly obesity: evidence from a difference-in-differences analysis of the broadband China policy DOI&#xff1a;10.1186/s13690-025-01565-9 中文标题&#xff1a;互联网使用导致老年人肥胖&#xff1a;中国宽带政策差异…...