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

扫盲笔记之NPM

简介

npm,全名 node package manger。

NPM(Node Package Manager)是一个 JavaScript 包管理工具,也是 Node.js 的默认包管理器。

NPM 允许开发者轻松地下载、安装、共享、管理项目的依赖库和工具。网址:https://www.npmjs.com/

新版的 Node.js 已经集成了 NPM,所以我们可以直接通过输入 npm -v 来测试是否成功安装

如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下:

npm install npm -g
# 或者
npm install -g cnpm --registry=https://registry.npmmirror.com

安装

npm 在按照 Node.js 时会连带被安装。但有可能不是最新版本,需要 npm install npm@latest -g 升级到最新版本。

命令:

# 查看 npm 命令列表
$ npm help
# 查看各个命令的简单用法
$ npm -l
# 查看 npm 的版本
$ npm -v
# 查看 npm 的配置
$ npm config list -l

安装包

本地安装

  • 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
  • 可以通过 require() 来引入本地安装的包。

全局安装

  • 将安装包放在 /usr/local 下或者你 node 的安装目录。
  • 一般来说,全局安装只适用于工具模块,比如eslint和gulp
  • 可以直接在命令行里使用。

如果你希望具备两者功能,则需要在两个地方安装它或使用 npm link。有时我们会希望,边开发边试用,比如本地调试的时候,require(‘myModule’) 会自动加载本机开发中的模块。Node规定,使用一个模块时,需要将其安装到全局的或项目的 node_modules 目录之中。对于开发中的模块,解决方法就是在全局的 node_modules 目录之中,生成一个符号链接,指向模块的本地目录。npm link 就能起到这个作用,会自动建立这个符号链接。

更新包

npm update命令可以更新本地安装的模块

# 升级当前项目的指定模块
$ npm update [package name]
# 升级全局安装的模块
$ npm update -global [package name]
1234

它会先到远程仓库查询最新版本,然后查询本地版本。如果本地版本不存在,或者远程版本较新,就会安装。

使用-S或–save参数,可以在安装的时候更新package.json里面模块的版本号。

注意,从npm v2.6.1开始,npm update只更新顶层模块,而不更新依赖的依赖,以前版本是递归更新的。如果想取到老版本的效果,要使用下面的命令。

$ npm --depth 9999 update

发布卸载包

npm publish用于将当前模块发布到http://npmjs.com。执行之前,需要向http://npmjs.com申请用户名。

# 需要向npmjs.com申请用户名
$ npm adduser
# 登录
$ npm login
# 发布
$ npm publish
# 如果当前模块是一个beta版,比如1.3.1-beta.3,那么发布的时候需要使用tag参数,将其发布到指定标签,默认的发布标签是latest
$ npm publish --tag beta
# 如果发布私有模块,模块初始化的时候,需要加上scope参数。只有npm的付费用户才能发布私有模块。
$ npm init --scope=<yourscope>
# 如果你的模块是用ES6写的,那么发布的时候,最好转成ES5。首先,需要安装Babel。
$ npm install --save-dev babel-cli@6 babel-preset-es2015@6
123456789101112

然后,在package.json里面写入build脚本。

"scripts": {"build": "babel source --presets babel-preset-es2015 --out-dir distribution","prepublish": "npm run build"
}
1234

运行上面的脚本,会将 source 目录里面的ES6源码文件,转为 distribution 目录里面的 ES5 源码文件。然后,在项目根目录下面创建两个文件 .npmignore 和 .gitignore,分别写入以下内容。

// .npmignore
source
// .gitignore
node_modules
distribution
npm deprecate
123456

如果想废弃某个版本的模块,可以使用 npm deprecate 命令。

$ npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3"

废弃之后还是可以查到的,而且不能再次发布,如果要删除需要执行

npm unpublish <包名> -force

如果要更新发布则执行以下两步

  • 第一步:执行npm version <版本号类型>
  • 第二步:执行 npm publish

版本控制

npm内置了版本控制功能,允许你通过简单的命令来更新项目的版本号。

  • npm version patch:将版本号中的补丁级别加1(例如,从1.0.0到1.0.1)。
  • npm version minor:将版本号中的次要级别加1,并将补丁级别重置为0(例如,从1.0.0到1.1.0)。
  • npm version major:将版本号中的主级别加1,并将次要级别和补丁级别重置为0(例如,从1.0.0到2.0.0)。

安装原理

参考

  • https://mp.weixin.qq.com/s/8WKqxJ_CSvwEtKHPcWHmdA

npm install

1、npm install 执行之后,首先,检查并获取 npm 配置
这里的优先级为:项目级的 .npmrc 文件 > 用户级的 .npmrc 文件> 全局级的 .npmrc 文件 > npm 内置的 .npmrc 文件

2、检查项目中是否有 package-lock.json 文件

  1. 若有:检查 package-lock.json 和 package.json 中声明的依赖是否一致:一致就直接使用package-lock.json 中的信息,从缓存或网络资源中加载依赖;不一致,则依据npm的版本进行处理
  2. 若无:则根据 package.json 递归构建依赖树,按照构建好的依赖树下载完整的依赖资源,在下载时就会检查是否存在相关资源缓存:存在缓存,就会将缓存内容解压到node_modules 中;不存在缓存,就从npm远程仓库下载包,并会检验包的完整性,随后添加到缓存,解压到node_modules 中生成package-lock.json。

3、最后生成 package-lock.json

这里值得注意的是:npm不同版本在检查 package-lock.json 和 package.json 中声明的依赖是否一致的时候处理是不一样的

  1. npmV5.0.x是根据package-lock.json下载
  2. npmV5.1.0-5.4.2:当package.json声明的依赖版本规范有符合的更新版本时,会按照package.json安装,并更新package-lock.json
  3. npmV5.4.2以上,当package.json声明的依赖版本规范和package-lock.json安装版本兼容,则按照package-lock.json安装,如果不兼容,按照package.json安装,并更新package-lock.json

package.json

简介

package.json 位于模块的目录下,用于定义包的属性。

属性

  • name - 包名。

  • version - 包的版本号。

  • description - 包的描述。

  • homepage - 包的官网 url 。

  • author - 包的作者姓名。

  • contributors - 包的其他贡献者姓名。

  • dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。

  • repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。

  • main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。

  • keywords - 关键字

package-lock.json

Lock文件的出现是为了解决 npm install 的不确定性问题 ,在 npm 5.x 版本新增了 package-lock.json 文件。

它的作用是锁定依赖结构,只要你目录下有 package-lock.json 文件,那么你每次执行 npm install 后生成的 node_modules 目录结构一定是完全相同的。

版本号

NPM 使用语义版本号来管理代码,语义版本号分为 X.Y.Z 三位,分别代表主版本号、次版本号和补丁版本号,当代码变更时,版本号按以下原则更新。

  • 如果只是修复 bug,需要更新 Z 位。
  • 如果是新增了功能,但是向下兼容,需要更新 Y 位。
  • 如果有大变动,向下不兼容,需要更新 X 位。

版本号有了这个保证后,在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范围的版本号。例如 “argv”: “0.0.x” 表示依赖于 0.0.x 系列的最新版 argv。

命令

我们在开发项目中,有很多功能或者UI库都是其他的开源开发者写好发布到npm包,我们不用自己的来开发,直接下载使用即可。大大的提高了开发的速度。

  • npm init 初始化一个新的 Node.js 项目,生成 package.json 文件。
  • npm install 包名称 本地安装指定的npm包,如果不加包名称,那么就是安装package.json文件中的所有依赖
  • npm install 包名称 -g 全局安装
  • npm list 查看安装的模块
  • npm list -g 查看全局安装的模块
  • npm list 包名称 查看某个包的版本号
  • npm uninstall 包名称 卸载指定的npm包
  • npm update 包名称 更新指定的npm包
  • npm search 包名称 搜索指定的npm包
  • npm publish 发布模块
  • npm help 查看有关于npm的所有命令
  • npm config get registry 查看下载源
  • npm cache clean --force 清除缓存
  • npm config set registry http://registry.npm.taobao.org 设置淘宝镜像源(已过期)
  • npm config set registry https://registry.npmjs.org/ 设置官方镜像源
    • npm config set registry https://registry.npmmirror.com 设置淘宝镜像源
  • npm config set strict-ssl false 取消SSL验证
  • npm run

淘宝 NPM 镜像

由于国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

$ npm install -g cnpm --registry=https://registry.npmmirror.com

这样就可以使用 cnpm 命令来安装模块了:

$ cnpm install [name]

更多信息可以查阅:https://npmmirror.com/。

nrm

nrm 用于管理镜像,是一个可以切换npm镜像的管理工具。


The end.

相关文章:

扫盲笔记之NPM

简介 npm&#xff0c;全名 node package manger。 NPM&#xff08;Node Package Manager&#xff09;是一个 JavaScript 包管理工具&#xff0c;也是 Node.js 的默认包管理器。 NPM 允许开发者轻松地下载、安装、共享、管理项目的依赖库和工具。网址&#xff1a;https://www…...

【Go-2】基本语法与数据类型

基本语法与数据类型 Go语言作为一种静态类型、编译型语言&#xff0c;拥有简洁且高效的语法结构。本章将深入介绍Go的基本语法和数据类型&#xff0c;帮助你建立扎实的编程基础。 2.1 第一个 Go 程序 编写第一个Go程序是学习任何编程语言的传统步骤。通过一个简单的“Hello,…...

Varlet UI-Material Design风格Vue 3框架移动端组件库

#Varlet UI是什么 在现代Web开发中&#xff0c;Vue 3以其强大的组件系统特性&#xff0c;成为了构建可复用、模块化应用界面的首选框架。而在Vue 3的生态系统中&#xff0c;Varlet UI开源组件库以其高效、一致和可维护的设计&#xff0c;为开发者提供了丰富的工具和资源。本文将…...

Golang的文件上传与下载

## Golang的文件上传与下载 文件上传 在Golang中&#xff0c;我们可以使用 net/http 包来实现文件上传功能。文件上传的一般流程包括创建一个接收上传请求的处理器&#xff0c;解析表单数据&#xff0c;然后获取文件并保存到服务器指定的位置。 创建文件上传接口 首先&#xff…...

信奥赛-刷题笔记-栈篇-T3-P4387验证栈序列0520

总题单 ​ 本部分总题单如下 【腾讯文档】副本-CSP-JSNOI 题单 (未完待续) https://docs.qq.com/sheet/DSmJuVXR4RUNVWWhW?tabBB08J2 栈篇题单 P4387 【深基15.习9】验证栈序列 题目描述 给出两个序列 pushed 和 poped 两个序列&#xff0c;其取值从 1 到 n ( n ≤ 10…...

jenkins授权管理.

使用背景: 在企业中可能多个开发组织共用同一个Jenkins服务器&#xff0c; 不会让用户具有管理员权限的&#xff0c; 需要给用户分配对应的Group组织权限。例如&#xff1a; 张三&#xff0c; 属于devops1这个组织&#xff0c; 仅允许张三对devops1组织相关的jenkins作业进行构…...

Ubuntu24.04安装Dify

1、win10上安装docker不顺利 参考&#xff1a;Dify的安装_dify安装-CSDN博客等资料&#xff0c;Dify依赖Docker运行&#xff0c;在Win10上安装Docker&#xff0c;先安装wsl。在PowerShell(管理员)中输入&#xff1a; wsl --install 或显示“找不到指定文件”&#xff0c;或显示…...

Spring Boot 集成 Elasticsearch【实战】

前言&#xff1a; 上一篇我们简单分享了 Elasticsearch 的一些概念性的知识&#xff0c;本篇我们来分享 Elasticsearch 的实际运用&#xff0c;也就是在 Spring Booot 项目中使用 Elasticsearch。 Elasticsearch 系列文章传送门 Elasticsearch 基础篇【ES】 Elasticsearch …...

Spark离线数据处理实例

工具&#xff1a;Jupyter notebook # 一、需求分析 &#xff08;1&#xff09;分析美妆商品信息&#xff0c;找出每个“商品小类”中价格最高的前5个商品。 &#xff08;2&#xff09;每月订购情况&#xff0c;统计每个月订单的订购数量情况和消费金额。 &#xff08;3&#x…...

window 安装 wsl + cuda + Docker

WSL 部分参考这里安装&#xff1a; Windows安装WSL2 Ubuntu环境 - 知乎 如果出现错误&#xff1a; WslRegisterDistribution failed with error: 0x800701bc 需要运行&#xff1a;https://crayon-shin-chan.blog.csdn.net/article/details/122994190 wsl --update wsl --shu…...

多通道振弦式数据采集仪MCU安装指南

设备介绍 数据采集仪 MCU集传统数据采集器与5G/4G,LoRa/RS485两种通信功能与一体的智能数据采集仪。该产品提供振弦、RS-485等的物理接口&#xff0c;能自动采集并存储多种自然资源、建筑、桥梁、城市管廊、大坝、隧道、水利、气象传感器的实时数据&#xff0c;利用现场采集的数…...

Linux:进程信号---信号的概念与产生

文章目录 1. 信号的概念1.1 信号1.2 认识信号1.3 signal函数1.4 信号的识别&#xff08;硬件角度&#xff09; 2. 信号的产生2.1 键盘组合键2.2 kill命令2.3 系统调用2.4 异常2.5 软件条件 3. core dump 序&#xff1a;在我们的生活中&#xff0c;有很多信号&#xff0c;比如红…...

开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享

OpenHarmony 5.0版本的发布时间是2024年12月20日至21日。这个版本带来了许多新特性和改进。现在5.0出了两个release 版本&#xff0c;分别是5.0.0和5.0.1。 就在5.0版本发布不到2周的时间内&#xff0c;2025年01月01日起&#xff0c;不支持新产品基于老分支&#xff08;OpenHa…...

Nvidia - NVLink Fusion

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

C#处理印尼地区的数字分隔符方法

1.在印尼 数字中的 小数点 和 千分位分隔符 的用法与欧美习惯相反 逗号&#xff08;,&#xff09; 用作 小数点&#xff08;如 1,23 表示 1.23&#xff09;。点&#xff08;.&#xff09; 用作 千分位分隔符&#xff08;如 1.000 表示 1000&#xff09;。 查阅资料后发现&#…...

Python爬虫(30)Python爬虫高阶:Selenium+Scrapy+Playwright融合架构,攻克动态页面与高反爬场景

目录 一、背景&#xff1a;动态页面与反爬技术的崛起二、技术融合架构设计1. 核心组件分工2. 架构图示3. 关键技术点 三、代码实现&#xff1a;分步详解1. 环境配置2. 核心代码结构3. Scrapy项目集成4. Playwright增强功能示例 四、总结&#xff1a;技术融合的优势与挑战1. 优势…...

PHP、JAVA、Shiro反序列化

目录 一、PHP反序列化 二、JAVA反序列化 三、Shiro反序列化 Shiro-550 反序列化漏洞原理 Shiro-721 反序列化漏洞原理 Padding Oracle 漏洞补充&#xff1a; 防御措施&#xff1a; 一、PHP反序列化 主要是分为有类和无类&#xff1a; 1、有类&#xff1a;就有相关的魔术…...

FreeRTOS全攻略:从入门到精通

目录 一、FreeRTOS 基础概念1.1 FreeRTOS 是什么1.2 为什么选择 FreeRTOS 二、与裸机开发的区别2.1 任务管理2.2 中断处理2.3 资源管理 三、FreeRTOS 入门篇3.1 内存管理3.2 任务创建3.3 任务状态3.4 任务优先级3.5 空闲任务和钩子函数3.6 同步与互斥​3.7 队列​3.8 信号量​3…...

机器学习 决策树-分类

决策树-分类 1 概念2 基于信息增益决策树的建立(1) 信息熵(2) 信息增益(3) 信息增益决策树建立步骤 3 基于基尼指数决策树的建立(了解)4 sklearn API5 示例 1 概念 1、决策节点 通过条件判断而进行分支选择的节点。如&#xff1a;将某个样本中的属性值(特征值)与决策节点上的值…...

【RK3588嵌入式图形编程】-Cairo-形状与填充

形状与填充 文章目录 形状与填充1、基本形状2、 纯色填充3、 填充图案4、 填充渐变本文介绍了如何使用Cairo库创建和填充基本形状及复杂形状。首先,通过Cairo API创建矩形、正方形、圆形、弧线和椭圆等基本形状,并使用纯色进行填充。接着,通过组合基本图元,展示了如何绘制星…...

C及C++的音频库与视频库介绍

在 C/C 开发中&#xff0c;处理音频和视频需要依赖专业的库来实现编解码、播放、录制、处理等功能。 一.音频库&#xff08;C/C&#xff09; 1.FFmpeg&#xff08;音频 视频全能库&#xff09; 功能&#xff1a; 支持几乎所有音频 / 视频格式的编解码&#xff08;如 MP3、…...

5.2.4 wpf中MultiBinding的使用方法

在 WPF 中,MultiBinding 允许将多个绑定(Binding)组合成一个逻辑结果,并通过一个转换器(IMultiValueConverter)处理这些值,最终影响目标属性。以下是其核心用法和示例: 核心组件: MultiBinding:定义多个绑定源的集合。 IMultiValueConverter:实现逻…...

小白的进阶之路系列之二----人工智能从初步到精通pytorch中分类神经网络问题详解

什么是分类问题? 分类问题涉及到预测某物是一种还是另一种。 例如,你可能想要: 问题类型具体内容例子二元分类目标可以是两个选项之一,例如yes或no根据健康参数预测某人是否患有心脏病。多类分类目标可以是两个以上选项之一判断一张照片是食物、人还是狗。多标签分类目标…...

日志根因分析:Elastic Observability 的异常检测与日志分类功能

作者&#xff1a;来自 Elastic Bahubali Shetti Elastic Observability 不仅提供日志聚合、指标分析、APM 和分布式追踪&#xff0c;Elastic 的机器学习能力还能帮助分析问题的根因&#xff0c;让你将时间专注于最重要的任务。 随着越来越多的应用程序迁移到云端&#xff0c;收…...

web基础

域名概述 2-1 域名的概念&#xff1a;IP 地址不易记忆&#xff0c;域名是互联网络上识别和定位计算机的层次结构式的字符标识&#xff0c;与该计算机的互联网协议 (IP) 地址相对应&#xff0c;用于在数据传输时标识计算机的电子方位&#xff0c;方便人们记忆和输入。 早期使用…...

WebRTC技术EasyRTC音视频实时通话驱动智能摄像头迈向多场景应用

一、方案背景​ 在物联网蓬勃发展的当下&#xff0c;智能摄像头广泛应用于安防、家居、工业等领域。但传统智能摄像头存在视频传输延迟高、设备兼容性差、网络波动时传输不稳定等问题&#xff0c;难以满足用户对实时流畅交互视频的需求。EasyRTC凭借低延迟、高可靠、跨平台特性…...

替换word中的excel

PostMapping("/make/report/target/performance/first") public AjaxResult makeTargetReportFirst(RequestBody MakeReportDTO makeReportDTO) {Map<String, String> textReplaceMap new HashMap<>();// 替换日期LocalDateTime nowData LocalDateTime…...

【氮化镓】低剂量率对GaN HEMT栅极漏电的影响

2024 年 2 月 22 日,中国科学院新疆理化技术研究所的Li等人在《IEEE ACCESS》期刊发表了题为《Degradation Mechanisms of Gate Leakage in GaN-Based HEMTs at Low Dose Rate Irradiation》的文章,基于实验分析和 TCAD 仿真,研究了低剂量率辐照下基于 GaN 的 p 型栅高电子迁…...

win10使用nginx做简单负载均衡测试

一、首先安装Nginx&#xff1a; 官网链接&#xff1a;https://nginx.org/en/download.html 下载完成后&#xff0c;在本地文件中解压。 解压完成之后&#xff0c;打开conf --> nginx.config 文件 1、在 http 里面加入以下代码 upstream GY{#Nginx是如何实现负载均衡的&a…...

Java 06API时间类

API-时间类 Date jdk8之前1.构造 代表当前的日期和时间 1.Date d1new Date();当前的时间编译成对象 2.Date d2new Date(long time);时间毫秒值代表的Date日期对象 long 类型需要在写L 及8L2.常用方法 public long getTime();获取从1970-1-1到现在的毫秒值总数 void setTime…...

2.11 筹资管理

11.1 筹资主体 11.1.1 企业筹资 1.内源筹资 企业自由资金、应付息税以及未使用或者分配专项基金。自由资金:留存收益、应收账款、闲置资产变卖未使用或者分配专项基金:更新改造基金、生产发展基金以及职工福利基金 2.外源筹资 权益筹资:普通股筹资、优先股筹资债务筹资:借…...

什么是 AI 人工智能?什么是机器学习?什么是深度学习?三者啥关系

AI 到底是个啥&#xff1f;跟咱有啥关系&#xff1f;一文帮你搞懂&#xff01; 最近是不是老听到 “AI”、“人工智能” &#xff0c;“机器学习”&#xff0c;“深度学习”这些词&#xff1f;感觉挺高大上&#xff0c;但又有点懵&#xff1f;别担心&#xff0c;今天咱们就用大…...

C语言经典面试题及答案100道

# C语言经典面试题及答案100道 ## 基础概念部分 1. **什么是C语言&#xff1f;** - 答&#xff1a;C语言是一种通用的、过程式的计算机编程语言&#xff0c;由Dennis Ritchie于1972年在贝尔实验室开发&#xff0c;主要用于系统软件开发。 2. **C语言的特点是什么&#xf…...

RocketMQ 顺序消息实现原理详解

RocketMQ 的顺序消息实现原理主要围绕生产者发送顺序性、Broker存储顺序性和消费者消费顺序性三个核心环节展开&#xff0c;具体分为全局有序和分区有序两种模式。 一、顺序消息的分类 1. 全局有序 定义&#xff1a;某个Topic下所有消息严格按FIFO顺序处理。实现&#xff1a;…...

SpringBoot与GeoHash整合,实现骑手就近派单功能

通过使用GeoHash结合Redis的地理空间功能,能够实时管理和查询骑手的位置信息,并根据订单量和评分等因素动态分配最近的骑手来完成配送任务. 空间索引: GeoHash是一种将地理坐标(经纬度)编码为字符串的算法,可以用于空间索引。 这使得我们可以方便地在Redis这样的内存数据库…...

spark任务的提交流程

目录 spark任务的提交流程1. 资源申请与初始化2. 任务划分与调度3. 任务执行4. 资源释放与结果处理附:关键组件协作示意图扩展说明SparkContext介绍 spark任务的提交流程 用户创建一个 Spark Context;Spark Context 去找 Cluster Manager 申请资源同时说明需要多少 CPU 和内…...

阿博图书馆管理系统 Java+Spring Boot+MySQL 实战项目分享

一、项目简介 为了提升图书馆的管理效率和用户体验&#xff0c;我们基于 Java Spring Boot MySQL 开发了一款完整的图书馆管理系统 —— 阿博图书馆管理系统。系统采用前后端分离架构&#xff0c;功能模块丰富&#xff0c;操作逻辑清晰&#xff0c;适合用于毕业设计、实训项…...

es学习小结

1.​客户端类型​ ​推荐场景​ ​版本兼容性​ Elasticsearch Java API Client 新项目、ES 8.x集群 8.x及以上 Spring Data Elasticsearch Spring生态项目、简化ORM操作 ES 7.x-8.x&#xff08;需版本匹配&#xff09; Low-Level REST Client 需要底层HTTP控制、兼容多版本ES …...

【数据库课程设计】网上投票管理系统

目录 前言&#xff1a; 一&#xff0c;系统需求分析 1&#xff0c;需求概述 2&#xff0c;系统功能图 3&#xff0c;业务流程图 业务流程分析 业务流程图 4&#xff0c;数据流程图 5&#xff0c;数据字典 二&#xff0c;概念结构设计 1&#xff0c;实体分析 2&am…...

STM32+ESP8266+ONENET+微信小程序上传数据下发指令避坑指南

之前只做过类似的但是以为这种烂大街的功能应该不难结果还是踩了不少坑&#xff0c;记录几个需要注意的点 1、创建产品的时候选择onejson&#xff0c;自定义方案。这样选择的就是物模型&#xff0c;之后可以去使用物模型的API调试。 2、设置物模型 大概有以下几种比较常用的&…...

不同消息队列保证高可用实现方案

消息队列的高可用性&#xff08;High Availability, HA&#xff09;是分布式系统中的核心需求&#xff0c;不同消息队列通过多种技术手段实现高可用。以下是主流消息队列的高可用实现方案及对比&#xff1a; 一、Apache Kafka 副本机制&#xff08;Replication&#xff09; 每个…...

Android 蓝牙开发 - 蓝牙相关权限(蓝牙基本权限、Android 12 蓝牙新增权限、位置权限)

蓝牙基本权限 1、基本介绍 <uses-permission android:name"android.permission.BLUETOOTH" />BLUETOOTH&#xff1a;允许应用连接配对的蓝牙设备 <uses-permission android:name"android.permission.BLUETOOTH_ADMIN" />BLUETOOTH_ADMIN&am…...

【Linux】第二十一章 管理存储堆栈

1. 分别说明LVM中物理卷、物理区块、卷组、逻辑卷的概念以及它们之间的关系。 在 LVM (Logical Volume Management) 中&#xff0c;硬盘的管理变得更加灵活&#xff0c;允许动态地调整磁盘空间的分配。 物理卷&#xff08;PV&#xff09;&#xff1a;LVM使用底层物理设备&…...

OpenCV 人脸识别:从基础到实践全解析

在人工智能与计算机视觉蓬勃发展的今天&#xff0c;人脸识别技术已深入我们生活的方方面面&#xff0c;从手机解锁到安防监控&#xff0c;其应用无处不在。而 OpenCV 作为计算机视觉领域最受欢迎的开源库之一&#xff0c;为开发者提供了一套高效且易用的人脸识别解决方案。本文…...

【HTML-2】HTML 标题标签:构建网页结构的基础

在网页开发中&#xff0c;标题标签(<h1>到<h6>)是构建内容层次结构和语义化标记的基础元素。这些标签不仅影响内容的视觉呈现&#xff0c;更对网页的可访问性和SEO有着深远影响。 1. 标题标签的基本用法 HTML提供了六个级别的标题标签&#xff1a; <h1>这…...

vue3前端后端地址可配置方案

在开发vue3项目过程中&#xff0c;需要切换不同的服务器部署&#xff0c;代码中配置的服务需要可灵活配置&#xff0c;不随着run npm build把网址打包到代码资源中&#xff0c;不然每次切换都需要重新run npm build。需要一个配置文件可以修改服务地址&#xff0c;而打包的代码…...

HTML应用指南:利用POST请求获取全国申通快递服务网点位置信息

申通快递&#xff08;STO Express&#xff09;作为中国领先的综合物流服务商&#xff0c;自1993年创立以来&#xff0c;始终秉持“正道经营、长期主义”的发展理念&#xff0c;深耕快递物流领域&#xff0c;开创了行业加盟制先河。经过30余年的发展&#xff0c;申通已成长为国家…...

《医院运营管理典型应用数据资源建设指南2025》全面分析

引言:医院数据资源建设的时代背景与意义 医院运营管理数据资源建设正迎来前所未有的发展机遇与挑战。在深化支付改革与公立医院高质量发展政策驱动下,医院亟需建立智慧化运营管理体系,而数据资源作为关键要素,其建设水平直接关系到医院管理的科学性与效率。《医院运营管理…...

.NET外挂系列:3. 了解 harmony 中灵活的纯手工注入方式

一&#xff1a;背景 1. 讲故事 上一篇我们讲到了 注解特性&#xff0c;harmony 在内部提供了 20个 HarmonyPatch 重载方法尽可能的让大家满足业务开发&#xff0c;那时候我也说了&#xff0c;特性虽然简单粗暴&#xff0c;但只能解决 95% 的问题&#xff0c;言外之意还有一些…...

taro 小程序 CoverImage Image src无法显示图片的问题

目录 一、问题描述 二、解决方案 一、问题描述 使用taro开发的微信小程序图片无法正常显示&#xff0c;并报如下错误&#xff1a; [渲染层网络层错误] Failed to load local image resource /assets/icon/message.png the server responded with a status of 500 (HTTP/1.…...