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

electron-builder 打包 exe 异常错误集锦

项目技术

vue-electron

vue-router

vuex

vuex-electron

element-ui

echarts

mysql

打包异常

Error: Unresolved node modules: vue
Error: Unresolved node modules: vue
    at D:\Code\Demo\Vue\Voice\App\node_modules\_app-builder-lib@20.44.4@app-builder-lib\src\util\packageDependencies.ts:112:21
    at Generator.next (<anonymous>)
    at Generator.tryCatcher (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\util.js:16:23)
    at PromiseSpawn._promiseFulfilled (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\generators.js:97:49)
    at Promise._settlePromise (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\promise.js:609:26)
    at Promise._settlePromise0 (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\promise.js:649:10)
    at Promise._settlePromises (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\promise.js:729:18)
    at Promise._fulfill (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\promise.js:673:18)
    at Promise._resolveCallback (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\promise.js:466:57)
    at Promise._settlePromiseFromHandler (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\promise.js:559:17)
    at Promise._settlePromise (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\promise.js:604:18)
    at Promise._settlePromises (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\promise.js:725:18)
From previous event:
    at Promise.longStackTracesCaptureStackTrace [as _captureStackTrace] (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\debuggability.js:482:19)
    at new PromiseSpawn (D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\generators.js:43:17)
    at D:\Code\Demo\Vue\Voice\App\node_modules\_bluebird@3.7.2@bluebird\js\release\generators.js:197:21
    at Packager.build (D:\Code\Demo\Vue\Voice\App\node_modules\_app-builder-lib@20.44.4@app-builder-lib\src\packager.ts:288:14)
    at build (D:\Code\Demo\Vue\Voice\App\node_modules\_app-builder-lib@20.44.4@app-builder-lib\src\index.ts:59:28)
    at build (D:\Code\Demo\Vue\Voice\App\node_modules\_electron-builder@20.44.4@electron-builder\src\builder.ts:228:10)
    at D:\Code\Demo\Vue\Voice\App\node_modules\_electron-builder@20.44.4@electron-builder\src\cli\cli.ts:49:19

可能是使用淘宝镜像的问题,把项目内 node_modules 文件夹内所有内容清除掉,然后使用 yarn install 重新下载。

Error: read ECONNRESET at TLSWrap.onStreamRead (internal/stream_base_commons.js:209:20)
Error: read ECONNRESET
    at TLSWrap.onStreamRead (internal/stream_base_commons.js:209:20)
From previous event:
    at CancellationToken.createPromise (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util-runtime\src\CancellationToken.ts:51:12)
    at D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\nodeHttpExecutor.ts:23:44
From previous event:
    at NodeHttpExecutor.download (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\out\nodeHttpExecutor.js:144:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\binDownload.ts:72:26
    at Generator.next (<anonymous>)
    at processImmediate (internal/timers.js:461:21)
From previous event:
    at doGetBin (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\out\binDownload.js:74:21)
    at getBin (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\binDownload.ts:30:13)
    at getTool (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\targets\tools.ts:118:10)
    at getAppBuilderTool (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\targets\tools.ts:128:3)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\platformPackager.ts:586:40
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.resolveIcon (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\platformPackager.js:623:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\platformPackager.ts:560:26
    at Generator.next (<anonymous>)
    at WinPackager.getOrConvertIcon (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\platformPackager.js:594:11)
    at Lazy.<anonymous> (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:59:43)
    at Lazy.get value [as value] (D:\Code\Demo\Vue\Voice\App\node_modules\lazy-val\src\main.ts:18:25)
    at WinPackager.getIconPath (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:195:27)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:292:33
    at Generator.next (<anonymous>)
    at WinPackager.signAndEditResources (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\winPackager.js:405:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:343:18
From previous event:
    at WinPackager.getOrConvertIcon (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\platformPackager.js:594:11)
    at Lazy.<anonymous> (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:59:43)
    at Lazy.get value [as value] (D:\Code\Demo\Vue\Voice\App\node_modules\lazy-val\src\main.ts:18:25)
    at WinPackager.getIconPath (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:195:27)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:292:33
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.signAndEditResources (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\winPackager.js:405:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:343:18
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.signApp (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\winPackager.js:423:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\platformPackager.ts:209:16
    at Generator.next (<anonymous>)
    at processImmediate (internal/timers.js:461:21)
From previous event:
    at WinPackager.doPack (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\platformPackager.js:276:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\platformPackager.ts:113:16
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.pack (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\platformPackager.js:196:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\packager.ts:364:24
    at Generator.next (<anonymous>)
    at D:\Code\Demo\Vue\Voice\App\node_modules\fs-extra-p\node_modules\fs-extra\lib\mkdirs\mkdirs.js:56:16
    at callback (D:\Code\Demo\Vue\Voice\App\node_modules\graceful-fs\polyfills.js:299:20)
    at FSReqCallback.oncomplete (fs.js:184:5)
From previous event:
    at Packager.doBuild (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\packager.js:432:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\packager.ts:308:52
    at Generator.next (<anonymous>)
    at D:\Code\Demo\Vue\Voice\App\node_modules\graceful-fs\graceful-fs.js:144:16
    at D:\Code\Demo\Vue\Voice\App\node_modules\graceful-fs\graceful-fs.js:61:14
    at FSReqCallback.oncomplete (fs.js:171:23)
From previous event:
    at Packager._build (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\packager.js:376:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\packager.ts:270:23
    at Generator.next (<anonymous>)
From previous event:
    at Packager.build (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\packager.js:332:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\builder.ts:310:40
    at Generator.next (<anonymous>)
From previous event:
    at _build (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\out\builder.js:61:21)
    at build (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\builder.ts:280:10)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\cli\cli.ts:48:33
    at processImmediate (internal/timers.js:461:21)
From previous event:
    at Object.runCommand (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\node_modules\yargs\lib\command.js:235:44)
    at Object.get [as argv] (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\node_modules\yargs\yargs.js:965:21)
    at Object.<anonymous> (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\cli\cli.ts:42:15)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47

electron-builder 版本问题,需要将 20.0 的版本降低到 "electron-builder": "^19.19.1" 。
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
From previous event:
    at CancellationToken.createPromise (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util-runtime\src\CancellationToken.ts:51:12)
    at D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\nodeHttpExecutor.ts:23:44
    at Generator.next (<anonymous>)
    at processImmediate (internal/timers.js:461:21)
From previous event:
    at NodeHttpExecutor.download (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\out\nodeHttpExecutor.js:144:11)
    at Timeout._onTimeout (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\binDownload.ts:83:14)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
 

下载请求超时,注意报错的前两句:
downloading     path=C:\Users\***\AppData\Local\electron-builder\cache\nsis\nsis-3.0.1.13 url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.1.13/nsis-3.0.1.13.7z
cannot download: Error: read ECONNRESET path=C:\Users\***\AppData\Local\electron-builder\cache\nsis\nsis-3.0.1.13 attempt=1
说明在下载 nsis-3.0.1.13.7z 这个压缩包时连接超时,这时需要我们手动下载(直接浏览器打开:https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.1.13/nsis-3.0.1.13.7z)这个安装包放到指定文件夹: C:\Users\***\AppData\Local\electron-builder\cache\nsis\ 下面(如下图)

at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
From previous event:
    at CancellationToken.createPromise (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util-runtime\src\CancellationToken.ts:51:12)
    at D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\nodeHttpExecutor.ts:23:44
    at Generator.next (<anonymous>)
    at processImmediate (internal/timers.js:461:21)
From previous event:
    at NodeHttpExecutor.download (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\out\nodeHttpExecutor.js:144:11)
    at Timeout._onTimeout (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\binDownload.ts:83:14)
    at listOnTimeout (internal/timers.js:554:17)
    at processTimers (internal/timers.js:497:7)
同样的问题,下载超时,注意前两句:
downloading     path=C:\Users\PLS_01\AppData\Local\electron-builder\cache\nsis-resources\nsis-resources-3.3.0 url=https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-resources-3.3.0/nsis-resources-3.3.0.7z
cannot download: Error: read ECONNRESET path=C:\Users\PLS_01\AppData\Local\electron-builder\cache\nsis-resources\nsis-resources-3.3.0 attempt=1
处理办法如上
Error: Exit code: 1. Command failed: C:\Users\***\AppData\Local\electron-builder\cache\winCodeSign\winCodeSign-1.9.0\rcedit.exe D:\Code\Demo\Vue\Voice\App\build\win-unpacked\app.exe --set-version-string FileDescription app --set-version-string ProductName app --set-version-string LegalCopyright Copyright © 2021 *** --set-file-version 0.0.1 --set-product-version 0.0.1.0 --set-version-string InternalName app --set-version-string OriginalFilename  --set-version-string CompanyName ***
--set-icon D:\Code\Demo\Vue\Voice\App\build\icons\icon.ico
Error: Exit code: 1. Command failed: C:\Users\***\AppData\Local\electron-builder\cache\winCodeSign\winCodeSign-1.9.0\rcedit.exe D:\Code\Demo\Vue\Voice\App\build\win-unpacked\app.exe --set-version-string FileDescription app --set-version-string ProductName app --set-version-string LegalCopyright Copyright © 2021 *** --set-file-version 0.0.1 --set-product-version 0.0.1.0 --set-version-string InternalName app --set-version-string OriginalFilename  --set-version-string CompanyName *** 
--set-icon D:\Code\Demo\Vue\Voice\App\build\icons\icon.ico
Fatal error: Unable to commit changes
 
Fatal error: Unable to commit changes
 
    at D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\util.ts:122:16
    at ChildProcess.exithandler (child_process.js:315:5)
    at ChildProcess.emit (events.js:315:20)
    at maybeClose (internal/child_process.js:1048:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
From previous event:
    at exec (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\util.ts:85:3)
    at execWine (D:\Code\Demo\Vue\Voice\App\node_modules\builder-util\src\wine.ts:60:12)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:326:11
From previous event:
    at WinPackager.signAndEditResources (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\winPackager.js:405:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\winPackager.ts:343:18
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.signApp (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\winPackager.js:423:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\platformPackager.ts:209:16
    at Generator.next (<anonymous>)
    at processImmediate (internal/timers.js:461:21)
From previous event:
    at WinPackager.doPack (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\platformPackager.js:276:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\platformPackager.ts:113:16
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.pack (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\platformPackager.js:196:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\packager.ts:364:24
    at Generator.next (<anonymous>)
    at D:\Code\Demo\Vue\Voice\App\node_modules\fs-extra-p\node_modules\fs-extra\lib\mkdirs\mkdirs.js:56:16
    at callback (D:\Code\Demo\Vue\Voice\App\node_modules\graceful-fs\polyfills.js:299:20)
    at FSReqCallback.oncomplete (fs.js:184:5)
From previous event:
    at Packager.doBuild (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\packager.js:432:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\packager.ts:308:52
    at Generator.next (<anonymous>)
    at D:\Code\Demo\Vue\Voice\App\node_modules\graceful-fs\graceful-fs.js:144:16
    at D:\Code\Demo\Vue\Voice\App\node_modules\graceful-fs\graceful-fs.js:61:14
    at FSReqCallback.oncomplete (fs.js:171:23)
From previous event:
    at Packager._build (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\packager.js:376:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\src\packager.ts:270:23
    at Generator.next (<anonymous>)
From previous event:
    at Packager.build (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder-lib\out\packager.js:332:11)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\builder.ts:310:40
    at Generator.next (<anonymous>)
From previous event:
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\builder.ts:310:40
    at Generator.next (<anonymous>)
From previous event:
    at build (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\builder.ts:280:10)
    at D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\cli\cli.ts:48:33
    at processImmediate (internal/timers.js:461:21)
From previous event:
    at Object.handler (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\cli\cli.ts:48:33)
    at Object.runCommand (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\node_modules\yargs\lib\command.js:235:44)
    at Object.parseArgs [as _parseArgs] (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\node_modules\yargs\yargs.js:1050:24)
    at Object.get [as argv] (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\node_modules\yargs\yargs.js:965:21)
    at Object.<anonymous> (D:\Code\Demo\Vue\Voice\App\node_modules\electron-builder\src\cli\cli.ts:42:15)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)

是因为项目没有配置 nsis ,在 package.json 下 的 build 中新增 nsis 配置:
"build": {
    "nsis": {
      "oneClick": false, // 是否一键安装
      "allowElevation": true, // 允许请求提升。 如果为false,则用户必须使用提升的权限重新启动安装程序。
      "allowToChangeInstallationDirectory": true, // 允许修改安装目录
      "installerIcon": "./build/icons/aaa.ico",// 安装图标
      "uninstallerIcon": "./build/icons/bbb.ico",//卸载图标
      "installerHeaderIcon": "./build/icons/aaa.ico", // 安装时头部图标
      "createDesktopShortcut": true, // 创建桌面图标
      "createStartMenuShortcut": true,// 创建开始菜单图标
      "shortcutName": "xxxx" // 图标名称
    }
}
至此,成功打包,在项目 build 文件下可以看到一个 exe 安装包。
————————————————
版权声明:本文为CSDN博主「蜡笔小新历险记」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/muyoufansem/article/details/115068814

相关文章:

electron-builder 打包 exe 异常错误集锦

项目技术 vue-electron vue-router vuex vuex-electron element-ui echarts mysql 打包异常 Error: Unresolved node modules: vue Error: Unresolved node modules: vue at D:\Code\Demo\Vue\Voice\App\node_modules\_app-builder-lib20.44.4app-builder-lib\src\…...

14-5_Qt 5.9 C++开发指南_基于HTTP 协议的网络应用程序

文章目录 1. 实现高层网络操作的类2. 基于HTTP协议的网络文件下载3.源码3.1 可是化UI设计3.2 mainwindow.h3.3 mainwindow.cpp 1. 实现高层网络操作的类 Qt 网络模块提供一些类实现 OSI 7 层网络模型中高层的网络协议&#xff0c;如 HTTP、FTP、SNMP等&#xff0c;这些类主要是…...

Kotlin委托

委托 委托 代理 方法内的成员永远拿不到thisRef&#xff1a;官方委托和自定义委托-》方法里面没办法使用反射 委托只能类委托和属性委托 Kotlin委托 本文链接&#xff1a;https://blog.csdn.net/feather_wch/article/details/132095759 类委托 1、类委托 委托的是接口的方…...

分布式协议与算法——CAP理论、ACID理论、BASE理论

CAP理论 CAP理论&#xff0c;对分布式系统的特性做了高度抽象&#xff0c;比如抽象成了一致性、可用性和分区容错性&#xff0c;并对特性间的冲突&#xff08;也就是CAP不可能三角&#xff09;做了总结。 CAP三指标 CAP理论对分布式系统的特性做了高度抽象&#xff0c;形成了…...

接口测试 Jmeter 接口测试 —— 请求 Headers 与传参方式

一、 背景&#xff1a; 在使用 Jmeter 进行接口测试时&#xff0c;有些小伙伴不知道 Headers 和请求参数 (Parameters&#xff0c;Body Data) 的联系&#xff0c;本文主要讲 Content-Type 为 application/x-www-form-urlencoded 和 application/json 的场景。 1、使用 Parame…...

【redis】redis部署1主2从3哨兵demo搭建示例

redis版本为7&#xff0c;搭建的架构为1主2从3哨兵的架构。本文是对搭建的过程做一个回忆&#xff0c;过程可能遗漏了某些步骤&#xff0c;见谅。 首先&#xff0c;需要有一个已经安装了的redis。我们从redis源码目录中&#xff0c;找到一个redis.conf文件&#xff0c;这个文件…...

C++数据结构之平衡二叉搜索树(一)——AVL的实现(zig-zag/左右双旋/3+4重构)

目录 00.BBST——平衡二叉搜索树01.AVL树02.AVL的插入2.1单旋——zig 与 zag2.2插入节点后的单旋实例2.3手玩小样例2.4双旋实例2.5小结 03.AVL的删除3.1单旋删除3.2双旋删除3.3小结 04.34重构05.综合评价AVL5.1优点5.2缺点 00.BBST——平衡二叉搜索树 本文是介绍众多平衡二叉搜…...

免疫疗法勘察兵——DC细胞

DC细胞又叫树状细胞或者树突细胞&#xff0c;1869年由保罗兰格尔翰斯发现&#xff0c;一开始被误以为是神经细胞的一种&#xff0c;直到1973年皮肤科医师Inga Silberberg发现了他的免疫功能&#xff0c;同年&#xff0c;被拉尔夫斯坦曼和赞威尔A科恩两人正式命名为“dendritic…...

Django实现音乐网站 ⑷

使用Python Django框架制作一个音乐网站&#xff0c;在系列文章3的基础上继续开发&#xff0c; 本篇主要是后台歌曲类型表、歌单表模块功能开发。 目录 表结构设计 歌曲类型表结构 歌单表结构 创建表模型 创建表 后台注册表模型 引入表模型 后台自定义 总结 表结构设计…...

2023年华数杯数学建模C题思路 - 母亲身心健康对婴儿成长的影响

# 1 赛题 C 题 母亲身心健康对婴儿成长的影响 母亲是婴儿生命中最重要的人之一&#xff0c;她不仅为婴儿提供营养物质和身体保护&#xff0c; 还为婴儿提供情感支持和安全感。母亲心理健康状态的不良状况&#xff0c;如抑郁、焦虑、 压力等&#xff0c;可能会对婴儿的认知、情…...

openGauss学习笔记-30 openGauss 高级数据管理-别名

文章目录 openGauss学习笔记-30 openGauss 高级数据管理-别名30.1 语法格式30.1.1 列别名语法30.1.2 表别名语法 30.2 参数说明30.3 示例 openGauss学习笔记-30 openGauss 高级数据管理-别名 SQL可以重命名一张表或者一个字段的名称&#xff0c;这个名称为该表或该字段的别名。…...

C#实现多线程局域网扫描器的思路与具体代码

C#实现多线程局域网扫描器的思路与具体代码 思路&#xff1a; 获取局域网内所有 IP 地址遍历所有 IP 地址&#xff0c;使用 Ping 命令测试主机是否在线如果主机在线&#xff0c;则扫描主机上的所有端口&#xff0c;确定哪些端口是开放的输出扫描结果 在上述过程中&#xff0…...

Redis秒杀:一人一单问题及初步解决

优惠券秒杀一人一单 前言一、需求以及之前存在的问题二、增加一人一单逻辑1.初步代码2.封装一人一单逻辑3.控制锁的粒度 三、事务控制问题四、总结 前言 跟随黑马虎哥学习redis&#xff1a; 这是我认为b站上最好的redis教程&#xff0c;各方面讲解透彻&#xff0c;知识点覆盖…...

python 数据分析面试题:求分组排第n名的记录数据

近期面试遇到一个面试题&#xff0c;分享给大家。 文中会提供详细的解题思路以及问题延伸 一、面试题 面试题&#xff1a;输出各学科总分第一名的学员姓名、年龄、分数数据&#xff1a; class_a {name: [学员1, 学员2, 学员3, 学员4,学员5],age: [23, 24, 26, 27,25],course…...

eclipse常用快捷键

Eclipse常用快捷键 补全代码的声明&#xff1a;alt /快速修复: ctrl 1批量导包&#xff1a;ctrl shift o使用单行注释&#xff1a;ctrl /使用多行注释&#xff1a; ctrl shift /取消多行注释&#xff1a;ctrl shift \复制指定行的代码&#xff1a;ctrl alt down 或…...

什么是OCR?OCR技术详解

光学字符识别(Optical Character Recognition)简称为“OCR”。ORC是指对包含文本资料的图像文件进行分析识别处理&#xff0c;获取文字及版面信息的技术。 一般包括以下几个过程&#xff1a; 1.图像输入 针对不同格式的图像&#xff0c;有着不同的存储格式和压缩方式。目前&…...

【大模型】开源且可商用的大模型通义千问-7B(Qwen-7B)来了

【大模型】开源且可商用的大模型通义千问-7B&#xff08;Qwen-7B&#xff09;来了 新闻通义千问 - 7B 介绍评测表现快速使用环境要求安装相关的依赖库推荐安装flash-attention来提高你的运行效率以及降低显存占用使用 Transformers 运行模型使用 ModelScope 运行模型 量化长文本…...

SQL分类及通用语法数据类型

一、SQL分类 DDL: 数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改DQL: 数据查询语言&#xff0c;用来查询数据库中表的记录DCL: 数据控制语言&#xff0c;用来创建数据库…...

亿欧智库:2023中国功效型护肤产品成分解析研究报告(附下载

关于报告的所有内容&#xff0c;公众【营销人星球】获取下载查看 核心观点 消费端&#xff1a;“纯净美妆〞概念火热&#xff0c;消费驱动因素向成分来源硬核转变 新冠疫情过后&#xff0c;消费者对于生活健康&#xff1a;自然&#xff0c;可持续的关注度持续上升。在消费者…...

Kubernetes高可用集群二进制部署(一)主机准备和负载均衡器安装

Kubernetes概述 使用kubeadm快速部署一个k8s集群 Kubernetes高可用集群二进制部署&#xff08;一&#xff09;主机准备和负载均衡器安装 Kubernetes高可用集群二进制部署&#xff08;二&#xff09;ETCD集群部署 Kubernetes高可用集群二进制部署&#xff08;三&#xff09;部署…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...