Node.js环境搭建全攻略:从零配置到优化实践
1. 项目概述为什么你需要一个靠谱的Node.js环境如果你刚接触Web开发或者想从后端、全栈方向入手那么Node.js绝对是你绕不开的第一个“基础设施”。它不是一个简单的软件而是一个能让JavaScript在服务器端运行的运行时环境。简单来说以前我们写的JavaScript代码只能在浏览器里执行用来操作网页、弹个窗、做个动画。但有了Node.jsJavaScript就能像Python、Java一样在电脑上独立运行处理文件、连接数据库、搭建一个完整的网站服务器。这带来的直接好处就是前端开发者可以用自己最熟悉的语言去写后端逻辑实现真正的“全栈”极大地提升了开发效率和团队协作的流畅度。然而很多新手在第一步“安装配置”上就栽了跟头。网上教程五花八门有的版本老旧有的步骤缺失还有的配置混乱导致后续开发工具如VSCode、Webpack无法识别Node.js。一个不正确的安装可能会让你在后续学习框架如Express、NestJS、使用包管理工具npm、yarn、pnpm时遇到各种诡异的报错比如“node不是内部或外部命令”、“npm命令找不到”或者安装依赖时权限不足、路径错误。这不仅打击学习热情更浪费大量时间在环境排查上。因此这篇内容的目标就是为你提供一个零基础、无死角、一步到位的Node.js环境搭建指南。我会从最核心的原理讲起带你理解Node.js的构成然后手把手完成从下载、安装、配置到验证的完整流程。更重要的是我会分享那些官方文档里不会写的“坑点”和“最佳实践”比如如何选择长期支持版本LTS而非最新尝鲜版如何配置全局模块和缓存的路径以避免C盘爆满以及如何设置国内镜像源来加速npm包的下载。最后我会提供一个包含Node.js v20.18.0 LTS的安装包确保你拿到的是当前最稳定、兼容性最好的版本让你能跳过官网下载的卡顿和版本选择的纠结直接进入高效的学习和开发状态。2. 核心需求解析Node.js安装到底在装什么在点击“下一步”之前我们有必要搞清楚Node.js安装包到底往我们的电脑里放了些什么。这不仅能帮你理解后续的配置步骤更能在出现问题时知道该从哪里着手排查。一个完整的Node.js安装主要包含三个核心部分Node.js 运行时Runtime这是核心引擎它基于Chrome的V8 JavaScript引擎构建负责解释和执行你的.js代码。当你运行node app.js时就是这个部分在工作。npmNode Package Manager这是随Node.js一同安装的包管理工具可以说是Node.js生态的基石。全球数百万开发者将自己编写的模块包发布到npm仓库你可以通过npm install命令轻松地将这些现成的功能模块比如处理时间的moment、发送HTTP请求的axios安装到你的项目中无需重复造轮子。核心模块与工具链安装包还会包含一些Node.js自带的原生模块如fs文件系统、http网络模块以及一些实用的命令行工具。对于新手而言最常见的两个需求痛点在于环境变量配置安装程序通常会尝试自动将Node.js和npm的可执行文件路径比如C:\Program Files\nodejs\添加到系统的PATH环境变量中。只有这样你才能在任意位置的命令行CMD、PowerShell、终端中直接输入node或npm命令并得到响应。很多安装失败的问题都源于环境变量没有正确设置。模块管理路径当你用npm install -g-g代表全局安装安装一个命令行工具时比如vue-cli或create-react-app这个工具会被安装到一个特定的全局目录。同样npm下载的所有包缓存也会存放在一个地方。默认情况下这些路径都在系统盘通常是C盘。如果不加管理随着项目增多C盘空间会迅速被蚕食。因此一个“保姆级”的教程不仅要确保你能成功运行node --version更要帮你规划好这些“后勤”路径为后续长期、顺畅的开发打下基础。3. 工具选型与版本策略为什么我推荐LTS版本面对Node.js官网上的“Current”和“LTS”两个版本新手很容易被“Current”当前最新版吸引觉得用最新的肯定最好。但这在软件开发中尤其是在生产环境和学习初期往往是一个误区。LTSLong Term Support长期支持版本。这是为生产环境设计的稳定版本会获得长达30个月约2.5年的维护和支持包括定期的重要漏洞修复和安全更新。它的API稳定社区生态各种第三方npm包兼容性最好是绝大多数企业和个人项目的首选。Current当前最新版本。它包含了最新的语言特性和V8引擎优化但可能不稳定一些新增的API可能在后续版本中被修改或移除第三方包的兼容性也可能需要时间跟进。它更适合喜欢尝鲜、愿意为前沿特性承担一定风险的开发者。我的强烈建议是对于学习和绝大多数项目开发请始终选择最新的LTS版本。比如在撰写本文时最新的LTS版本是v20.18.0。选择LTS能最大程度避免你在学习过程中因为Node.js版本问题而遇到一些稀奇古怪的、搜索引擎都难以找到答案的报错。关于安装包格式在Windows上通常有两种选择.msi安装程序这是最推荐新手使用的方式。它是一个图形化向导会自动处理安装路径、环境变量添加、创建开始菜单快捷方式等琐事几乎不需要手动干预。.zip压缩包这是一个绿色解压版需要手动解压并配置环境变量更适合需要灵活部署或对系统目录有洁癖的高级用户。为了最简化的体验我为你准备的安装包就是node-v20.18.0-x64.msi。我们将使用这个安装包进行后续的所有步骤。4. 前置检查与准备工作在运行安装程序之前花几分钟做一下准备工作可以避免很多后续麻烦。4.1 检查旧版本首先我们需要检查系统中是否已经安装了旧版本的Node.js避免版本冲突。按下Win R键输入cmd并回车打开命令提示符。在打开的黑框命令行窗口中依次输入以下两条命令并回车node --version npm --version观察输出如果提示“‘node’ 不是内部或外部命令也不是可运行的程序”说明没有安装过这是最理想的情况可以直接进行全新安装。如果显示了版本号如v16.14.0说明已有安装。你需要决定是升级还是覆盖。对于旧版本特别是v14以下的我建议先卸载。4.2 卸载旧版本如果存在如果决定卸载旧版本请务必通过系统标准的“卸载程序”方式进行而不是直接删除文件夹。打开Windows的“设置” - “应用” - “应用和功能”。在应用列表中找到Node.js点击它并选择“卸载”。按照提示完成卸载。卸载完成后非常重要的一步是检查并清理残留的环境变量。在Windows搜索栏输入“环境变量”选择“编辑系统环境变量”。在弹出的“系统属性”窗口中点击右下角的“环境变量”按钮。在“系统变量”区域找到并选中名为Path的变量点击“编辑”。在弹出的编辑窗口中检查是否存在指向旧Node.js安装目录的路径例如C:\Program Files\nodejs\或C:\Users\你的用户名\AppData\Roaming\npm。如果存在将其选中并点击“删除”。完成后点击“确定”保存。注意直接删除安装文件夹而不卸载程序会导致系统“添加或删除程序”列表中残留无效条目并且环境变量也可能指向一个不存在的路径这是很多“命令找不到”错误的根源。务必走标准卸载流程。4.3 获取安装包我已经将准备好的Node.js v20.18.0 LTS Windows 64位.msi安装包上传至可靠的网盘。你可以通过以下方式获取 此处应提供一个真实的、可访问的下载链接例如蓝奏云、阿里云盘等生成的分享链接和提取码。请注意由于我无法提供真实链接此处用占位描述代替你需要替换为实际链接安装包下载https://your-download-link.example.com/node-v20.18.0-x64.msi提取码node请下载该文件到你的电脑上例如“下载”文件夹。5. 分步安装与配置详解现在我们开始核心的安装与配置过程。5.1 运行安装向导找到你下载的node-v20.18.0-x64.msi文件双击运行。如果系统弹出“用户账户控制”窗口询问是否允许此应用对你的设备进行更改请点击“是”。安装向导启动后点击“Next”开始。5.2 接受许可协议在许可协议页面勾选“I accept the terms in the License Agreement”然后点击“Next”。5.3 选择安装路径这是第一个关键决策点。默认路径是C:\Program Files\nodejs\。对于大多数用户保持默认即可这是一个标准且安全的位置。 如果你想安装到其他盘符比如D盘可以点击“Change...”按钮将路径修改为类似D:\Development\nodejs\的格式。请记住你修改后的路径后续配置环境变量时会用到。 点击“Next”继续。5.4 自定义安装组件这个页面通常不需要改动保持默认选择即可。默认会安装Node.js runtime核心运行时。npm package manager包管理工具。Online documentation shortcuts在线文档快捷方式。Add to PATH这是最重要的一项务必确保“Add to PATH”这一项是被选中的通常默认就是选中的。它的作用就是自动将Node.js和npm的执行路径添加到系统的PATH环境变量中。 点击“Next”。5.5 准备安装确认你的选择无误后点击“Install”开始安装。此时可能会再次弹出“用户账户控制”窗口点击“是”授权。5.6 完成安装安装过程很快通常几十秒内完成。看到“Installed”或“完成”提示后点击“Finish”关闭向导。5.7 验证基础安装安装完成后我们需要立刻验证是否成功。再次按下Win R输入cmd打开一个新的命令提示符窗口。务必新开一个窗口因为安装程序修改的环境变量需要在新终端中才能生效。输入以下命令并回车node --version如果安装成功你会看到输出v20.18.0再输入npm --version你会看到npm的版本号例如10.9.2如果这两条命令都正确输出版本号恭喜你Node.js和npm已经成功安装并配置到了系统路径中6. 高级配置优化你的Node.js开发环境基础安装只是第一步。为了让开发体验更顺畅尤其是应对国内网络环境和磁盘空间管理我们还需要进行几项重要的配置。6.1 配置npm全局模块和缓存路径拯救C盘空间默认情况下全局安装的包npm install -g xxx和npm下载的缓存都会放在当前用户目录下的AppData\Roaming\npm和AppData\Local\npm-cache中这都在C盘。长期下来会占用大量空间。我们可以将它们迁移到其他盘符比如D盘。在你喜欢的盘符例如D盘下创建两个文件夹D:\nodejs\node_global用于存放全局安装的模块D:\nodejs\node_cache用于存放npm缓存以管理员身份打开命令提示符CMD或PowerShell。在开始菜单搜索“cmd”右键点击“命令提示符”选择“以管理员身份运行”。依次执行以下两条命令来告诉npm使用我们新建的目录npm config set prefix D:\nodejs\node_global npm config set cache D:\nodejs\node_cache接下来需要将新的全局模块路径添加到系统的PATH环境变量中这样系统才能找到你全局安装的命令行工具。打开“系统属性” - “环境变量”同4.2步骤。在“系统变量”区域找到并选中Path点击“编辑”。点击“新建”然后输入你设置的全局模块路径D:\nodejs\node_global。点击“确定”保存所有窗口。6.2 配置npm国内镜像源极大提升下载速度npm的官方仓库服务器在国外国内直接下载速度可能很慢甚至超时。我们可以将其镜像地址替换为国内的淘宝镜像。 在命令行普通权限即可中执行以下命令npm config set registry https://registry.npmmirror.com/这条命令会将npm的下载源永久性地切换到淘宝镜像。你可以通过npm config get registry命令来验证是否设置成功。6.3 验证高级配置完成以上配置后我们可以做一个测试。新开一个命令行窗口让新的PATH生效。尝试全局安装一个常用的工具例如yarn另一个流行的包管理器npm install -g yarn安装完成后输入yarn --version。如果能正确输出版本号说明npm镜像源配置成功下载速度飞快。全局模块路径配置成功yarn命令被安装到了D:\nodejs\node_global下并且系统通过PATH找到了它。同时所有下载的缓存也都存放在了D:\nodejs\node_cacheC盘得到了保护。7. 集成开发环境IDE配置示例一个配置好的Node.js环境最终要服务于编码。这里以最流行的免费编辑器Visual Studio Code (VSCode)为例说明如何与Node.js环境集成。安装VSCode从官网下载并安装VSCode。打开或创建项目文件夹在VSCode中打开一个包含你JavaScript/Node.js项目的文件夹。集成终端VSCode内置了终端。按下Ctrl反引号键即可打开。你会惊喜地发现在这个终端里直接可以运行node和npm命令因为VSCode继承了系统的环境变量。运行Node.js脚本在项目文件夹中创建一个新文件命名为app.js输入以下代码console.log(Hello, Node.js World!);在VSCode的终端中输入node app.js你将看到终端输出Hello, Node.js World!。这证明你的开发环境已经完全就绪。安装项目依赖如果你的项目有一个package.json文件Node.js项目的配置文件只需在终端中运行npm installVSCode会自动调用你配置好的npm从国内镜像快速下载所有依赖包到项目的node_modules文件夹中。8. 常见问题与排查技巧实录即使按照步骤操作也可能遇到一些问题。这里记录了几个最常见的问题和解决方法。8.1 问题‘node’ 不是内部或外部命令也不是可运行的程序原因这是最经典的错误意味着系统在PATH环境变量中找不到node.exe。排查确认Node.js安装路径例如C:\Program Files\nodejs。打开该文件夹确认node.exe文件存在。检查PATH变量在命令行输入echo %PATH%查看输出的长字符串中是否包含Node.js的安装路径。解决如果PATH中没有手动将Node.js安装路径如C:\Program Files\nodejs添加到系统的PATH变量中方法见6.1节。如果PATH中有但依然报错可能是你修改PATH后没有关闭并重新打开命令行窗口。请关闭所有命令行窗口和VSCode重新打开再试。如果安装路径包含中文或空格虽然Node.js安装程序能处理Program Files这样的空格但某些极端情况下仍可能引发问题。建议卸载后重新安装选择像D:\nodejs这样无中文、无空格的路径。8.2 问题npm安装包速度极慢或总是超时ETIMEDOUT原因网络连接npm官方仓库不稳定。解决确保已按照6.2节配置了淘宝镜像源npm config get registry确认输出是https://registry.npmmirror.com/。如果已配置仍慢可以尝试清理npm缓存后重试npm cache clean --force检查网络代理如果你在公司网络或使用了代理可能需要为npm配置代理。使用命令npm config list查看当前所有配置。8.3 问题全局安装的命令如vue无法识别原因全局安装的包的可执行文件所在目录即我们设置的node_global没有添加到系统的PATH中或者添加后未生效。排查找到全局安装目录。如果你按教程设置了路径是D:\nodejs\node_global。进入该目录查看是否存在你安装的命令对应的.cmd文件Windows下。解决确认已将D:\nodejs\node_global添加到系统的PATH变量中而非用户PATH。至关重要添加PATH后你必须关闭所有已打开的命令行窗口和VSCode然后重新打开一个新的命令行窗口新的PATH设置才会被加载。在新窗口中再次尝试运行全局命令。8.4 问题安装某些需要编译的npm包如node-sass时失败原因这些包包含C代码需要在本地用编译器如Visual C Build Tools进行编译。你的电脑可能缺少这个编译环境。解决安装Windows Build Tools这是一个npm包能自动安装所需编译环境。以管理员身份打开PowerShell或CMD运行npm install --global --production windows-build-tools这个过程会下载并安装Python和Visual Studio Build Tools耗时较长请耐心等待。或者你也可以手动安装最新版的 Visual Studio 在安装时选择“使用C的桌面开发”工作负载。8.5 问题权限不足安装时出现Error: EPERM: operation not permitted原因在Windows上向某些受保护的系统目录如默认的全局安装路径写入文件时需要管理员权限。解决推荐方案按照本教程6.1节将全局路径配置到一个你有完全控制权的自定义目录如D:\nodejs\node_global并确保该目录在PATH中。之后全局安装就无需管理员权限了。临时方案如果必须安装到默认位置则以管理员身份运行命令行再执行npm install -g命令。环境搭建是开发的第一步也是最容易让人沮丧的一步。但一旦你按照一个清晰、完整的指南走通后面学习框架、构建项目就会一马平川。我分享的这些配置尤其是修改全局路径和镜像源是我在多年开发和教学实践中总结出的“必做项”能帮你避开至少80%的初期环境问题。现在你的Node.js环境已经是一个配置优化、路径清晰、下载飞快的“战斗状态”了可以放心地去探索更广阔的JavaScript全栈世界了。如果在后续使用中遇到其他怪问题记住第一个排查思路永远是检查版本、检查路径、检查网络源。

相关新闻

Python eval函数深度解析:从动态执行到安全沙箱实践

Python eval函数深度解析:从动态执行到安全沙箱实践

1. 从一行代码的威力说起:为什么我们需要理解 eval 如果你写过一段时间的 Python,大概率在某个教程、开源项目或者 Stack Overflow 的答案里见过 eval() 这个函数。它看起来平平无奇,接收一个字符串,然后返回一个结果。比如&…

2026/10/13 16:28:44 阅读更多 →
从零到日更3000字不卡壳,AI写作工作流重构实录,含12个私藏Prompt模板+调试日志

从零到日更3000字不卡壳,AI写作工作流重构实录,含12个私藏Prompt模板+调试日志

更多请点击: https://codechina.net 第一章:AI做在线写作 人工智能正深度重塑在线写作的生产范式。从实时语法纠错、风格迁移,到多轮对话式内容生成,AI已不再仅是辅助工具,而是具备上下文理解、意图识别与协同创作能…

2026/10/13 18:25:37 阅读更多 →
数据分析基石:相关性、因果性与协方差的区别与应用

数据分析基石:相关性、因果性与协方差的区别与应用

1. 项目概述:从数据关联到真相洞察 在数据分析、机器学习乃至日常的业务决策中,我们每天都在和各种数据打交道。一个最常见的场景是:当我们看到两个变量一起变化时,比如“冰淇淋销量增加,溺水人数也上升”,…

2026/10/7 1:51:12 阅读更多 →

最新新闻

MiniCPM-V 4.7端侧推理实测:35B MoE模型在iPhone 17 Pro Max上的真实体验

MiniCPM-V 4.7端侧推理实测:35B MoE模型在iPhone 17 Pro Max上的真实体验

人工智能大模型多模态基础模型本地部署 【免费下载链接】MiniCPM-V-4.7-35B-A3B MiniCPM-V 4.7 是 MiniCPM-V 系列的最新模型,提供 35B-A3B 变体,其中 35B-A3B 是 MiniCPM-V 系列中的首个 MoE(混合专家)模型。它在家族现有的单图、…

2026/10/15 17:51:06 阅读更多 →
多项式环中的公因式、因式分解与重因式解析

多项式环中的公因式、因式分解与重因式解析

1. 这不是“背公式”的章节,而是代数思维的分水岭如果你翻过《高等代数》教材第7章,看到“公因式”“因式分解”“重因式”这几个词,第一反应可能是:这不就是中学多项式除法的升级版?再套个“环”的帽子,加…

2026/10/15 17:51:06 阅读更多 →
ViTPose 仓库实战:HRNet + DarkPose 在 COCO-WholeBody 全身关键点估计中的配置与训练指南

ViTPose 仓库实战:HRNet + DarkPose 在 COCO-WholeBody 全身关键点估计中的配置与训练指南

人工智能计算机视觉深度学习 【免费下载链接】ViTPose The official repo for [NeurIPS22] "ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation" and [TPAMI23] "ViTPose: Vision Transformer for Generic Body Pose Estimation" 项…

2026/10/15 17:51:06 阅读更多 →
GPCHC二进制帧解析与ROS话题发布:从串口到NavSatFix驱动实战

GPCHC二进制帧解析与ROS话题发布:从串口到NavSatFix驱动实战

简介:针对huace GPCHC解析与ROS集成这一具体场景,资源面向从事机器人定位、无人系统导航开发的工程师与研究者,重点解决GPS原始数据如何在机器人操作系统中完成采集、解析、转换与发布的问题。包体为一个约20.56MB的zip压缩包,内容…

2026/10/15 17:51:06 阅读更多 →
Spring Boot名士会所会员管理系统:从开发实战到答辩通关全指南

Spring Boot名士会所会员管理系统:从开发实战到答辩通关全指南

1. 这到底是个什么项目:先看清楚它的真实定位 第一次看到“springboot名士会所会员管理系统”这个标题,我的第一反应是:这不是一个简单的CRUD堆积品,而是一套带有真实商业场景的会员运营后台。所谓的“名士会所”,其实…

2026/10/15 17:51:06 阅读更多 →
Cesium自建地形数据实战:从DEM到量化网格瓦片

Cesium自建地形数据实战:从DEM到量化网格瓦片

搞Cesium开发,最绕不开的一件事就是地形数据。默认的在线地形服务虽然打开就能用,可真到了项目落地,总有让你必须自己生成地形数据的理由——精度不够、网络受限、数据不能离开本机。这篇博客把完整跑过一次的Cesium地形数据生成过程记录下来…

2026/10/15 17:50:05 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →