前端构建内存溢出:Node.js堆上限调整与优化实战
1. 问题现象与根因定位1.1 这个报错到底在说什么如果你正在维护一个迭代了两三年以上的前端项目大概率在某个下午遇到过这个场景本地跑npm run serve或者npm run build终端刷了几屏编译进度之后突然蹦出一行红字——FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory然后进程直接挂掉连个像样的堆栈都不给你留。这个报错翻译成人话就是Node.js 进程在运行过程中堆内存被塞满了垃圾回收器拼命想回收但收效甚微最后 V8 引擎直接放弃治疗把进程杀掉。注意这里的关键词是Node.js 进程不是浏览器。很多人第一反应是我代码是不是有内存泄漏其实大多数情况下跟你的业务代码一点关系都没有纯粹是构建工具在编译阶段吃掉了太多内存。前端项目在开发和生产构建阶段真正干活的是 Node 进程。Webpack、Vite、Rollup、Babel、TypeScript 编译器、ESLint 这些工具全部跑在 Node 上。项目越大模块越多依赖树越深Node 进程需要同时驻留在内存里的 AST、模块图、source map、缓存数据就越多。当这个总量超过 V8 默认给堆内存划定的上限时就炸了。1.2 为什么偏偏是项目太大才会触发V8 引擎对堆内存有一个默认上限这个上限跟你的机器架构和 Node 版本有关。在 64 位系统上老版本 Node比如 Node 12 之前默认堆上限大约是 1.4GB 到 1.5GB新版本 NodeNode 16 以后默认值有所提升但依然在 2GB 到 4GB 这个区间浮动具体取决于版本和构建配置。32 位系统就更惨通常只有 0.7GB 左右。这里有个很多人不知道的细节这个默认上限跟你物理内存有多大没关系。你机器插了 64GB 内存Node 该在 2GB 左右崩还是照样崩。因为 V8 是主动给自己设了个天花板不是被动等系统内存耗尽。这么设计的原因是为了避免垃圾回收停顿时间过长——堆越大一次 full GC 要扫描的对象越多停顿就越久对服务端场景来说这是不可接受的。但前端构建是个批处理任务我们完全可以接受多占点内存、少停顿几次。那项目太大具体大在哪里我梳理了一下实际项目里最吃内存的几个来源模块数量一个中型后台管理系统node_modules里加上业务代码模块数量轻松破万。Webpack 需要为每个模块建立依赖关系图每个模块都要经过 loader 处理、解析成 AST、生成代码。依赖嵌套深度很多第三方库层层依赖同一个包的不同版本可能被重复打包模块图会指数级膨胀。Source Map 生成开发模式下devtool: eval-source-map这类配置会为每个模块生成完整的映射信息内存占用直接翻倍甚至更多。TypeScript 类型检查ts-loader或者fork-ts-checker在构建时做全量类型检查类型信息本身就很占内存。CSS 预处理器和大量样式文件Sass/Less 编译、PostCSS 插件链处理每个文件都要走一遍。多页应用或微前端多个入口同时构建内存峰值叠加。所以当你看到这个报错先别急着怀疑代码先想想你的项目规模是不是已经到了构建工具吃不消的量级。1.3 报错出现的典型时机根据我这些年踩坑的经验这个错误集中出现在几个特定节点触发时机典型场景内存压力来源开发服务器启动npm run serve首次编译全量模块解析 source map生产构建npm run build压缩混淆 tree shaking source map热更新触发修改大文件后 HMR新旧模块对比 增量编译CI/CD 流水线服务器上跑构建容器内存限制更严格多项目并行同时开多个终端构建多个 Node 进程争抢内存有意思的是很多人在本地开发机上跑得好好的一上 CI 就崩原因就是 CI 容器通常只给 2GB 或 4GB 内存Node 默认上限加上系统开销直接顶到容器天花板。这个后面会专门讲怎么处理。2. 解决思路的整体设计2.1 三条路线加内存、省内存、换工具面对这个报错解决思路可以归为三大类我按见效速度和改造代价排个序第一条路直接给 Node 进程加内存上限。这是最快、最直接的办法改一行命令或者加一个环境变量就能搞定。原理就是通过--max-old-space-size参数告诉 V8别抠门了多给我点堆空间。这条路适合绝大多数场景尤其是你机器内存充足、只是 Node 默认值太保守的情况。第二条路优化构建配置降低内存峰值。比如关掉不必要的 source map、把类型检查拆到独立进程、用缓存减少重复编译、拆分构建任务。这条路改造量大一些但收益是长期的构建速度往往也能一起提升。第三条路换构建工具或升级工具链。比如从 Webpack 迁移到 Vite开发阶段用 esbuild 预构建内存占用低很多或者升级到 Webpack 5 利用其更好的缓存机制。这条路代价最大但如果是新项目或者有重构窗口期值得考虑。实际工作中我通常是第一条路先救急第二条路做优化第三条路看项目阶段决定。下面逐个展开。2.2 为什么--max-old-space-size是首选方案很多人会问既然 V8 默认上限是出于 GC 停顿考虑那我直接调大不会有问题吗对前端构建这种场景答案是基本没问题。原因有三第一构建是短时批处理任务不是长期运行的服务。GC 停顿久一点无非是构建多花几秒不影响用户体验。第二构建过程中大部分对象是用完就扔的临时对象AST、中间代码真正长期存活的对象不多full GC 的频率其实没那么高。第三现代机器内存普遍 16GB 起步给 Node 分个 4GB 到 8GB 完全在承受范围内。所以--max-old-space-size这个参数本质上是把 V8 的保守策略调成激进策略用内存换构建成功率。这是性价比最高的操作。2.3 参数该设多大才合理这是最常被问的问题。我的经验公式是建议值 项目构建峰值内存 × 1.5且不超过物理内存的 50%怎么估算项目构建峰值内存有个简单办法先设一个较大的值比如 8192构建成功后用node --max-old-space-size8192配合--trace-gc参数观察实际用了多少或者用系统监控工具看 Node 进程的峰值 RSS。实测几次取最大值再乘 1.5 作为安全余量。但更实用的做法是直接给个经验值项目规模模块数量级建议--max-old-space-size小型项目几百个模块2048默认通常够用中型项目几千个模块4096大型项目上万个模块8192超大型/微前端数万模块12288 或更高注意单位是 MB。--max-old-space-size4096就是 4GB。别写成4那会被理解成 4MB反而更容易崩。3. 具体实操从救急到优化3.1 最快见效命令行直接加参数如果你现在就想让构建跑起来最简单的办法是在package.json的 scripts 里改命令。但这里有个跨平台的坑Windows 的 cmd 和 PowerShell 不支持NODE_OPTIONSxxx node xxx这种前置环境变量写法Linux 和 macOS 可以。所以直接写{ scripts: { serve: NODE_OPTIONS--max-old-space-size8192 vue-cli-service serve, build: NODE_OPTIONS--max-old-space-size8192 vue-cli-service build } }在 Windows 上会报错。解决方案有两个一是用cross-env这个包二是直接改 Node 调用方式。用cross-env的写法npm install cross-env --save-dev{ scripts: { serve: cross-env NODE_OPTIONS--max-old-space-size8192 vue-cli-service serve, build: cross-env NODE_OPTIONS--max-old-space-size8192 vue-cli-service build } }cross-env的作用就是抹平不同操作系统的环境变量语法差异团队协作时特别有用避免我本地能跑你本地报错的尴尬。提示NODE_OPTIONS这个环境变量是 Node 官方支持的用来传递 V8 和 Node 的启动参数。它比在每个命令里硬编码node --max-old-space-sizexxx更灵活因为很多 CLI 工具比如 vue-cli-service本身是个可执行脚本你没法直接在它前面加 node 参数。3.2 更优雅用.npmrc或环境变量文件统一管理如果项目里有很多条命令都需要这个参数一条条改 scripts 太啰嗦。有两个更集中的管理方式。方式一在项目根目录建.npmrc文件写入node-options--max-old-space-size8192npm 在执行 scripts 时会自动读取这个配置并注入NODE_OPTIONS。这个方式的好处是配置集中坏处是只对 npm 生效用 yarn 或 pnpm 的话需要看它们各自的配置方式。方式二用.env文件配合 dotenv。不过这个方式需要你的构建工具支持读取.envVue CLI 和 Vite 都支持但注入的是process.env里的自定义变量不是NODE_OPTIONS所以不能直接用来控制 Node 启动参数。这个方式更适合管理业务配置不适合解决内存问题。我个人更推荐.npmrc或者直接在 scripts 里用cross-env简单直接不依赖额外工具。3.3 针对 Vue CLI 项目的专项配置Vue CLI 项目有个特殊之处它的构建过程分好几步vue-cli-service本身是个 Node 脚本它会调用 Webpack 做实际编译。所以NODE_OPTIONS设置对了整个链路都会继承这个内存上限。但如果你用的是 Vue CLI 4 以下的老版本可能会遇到NODE_OPTIONS不生效的情况原因是老版本的vue-cli-service内部可能重新 spawn 了子进程而子进程没有继承环境变量。这种情况的解决办法是升级 Vue CLI 到 4.x 以上或者在vue.config.js里手动配置。在vue.config.js里可以这样写module.exports { configureWebpack: { // 其他 webpack 配置 }, chainWebpack: config { // 针对大项目优化 config.performance .hints(false) // 关闭性能提示减少额外计算 } }不过说实话vue.config.js里能做的内存优化有限核心还是靠NODE_OPTIONS把上限提上去。3.4 生产构建的额外优化关闭 source map开发环境需要 source map 方便调试但生产环境如果不需要排查线上问题完全可以关掉。在vue.config.js里module.exports { productionSourceMap: false }这一项关掉构建内存峰值能降 20% 到 30%构建产物体积也能小不少。如果确实需要线上 source map可以考虑用hidden-source-map模式生成 map 文件但不在 bundle 里引用上传到错误监控平台用。3.5 拆分构建任务DLL 和 externals对于依赖特别多的项目可以用 Webpack 的 DLL 插件把不常变动的第三方库单独打包或者用externals把一些大库比如 ECharts、Element UI通过 CDN 引入不打进 bundle。这样每次构建只需要编译业务代码内存压力小很多。DLL 的配置稍微复杂需要在项目里建一个单独的 webpack 配置文件先跑一次生成 dll 文件然后在主配置里引用。这个方案在 Webpack 5 里其实不太推荐了因为 Webpack 5 的持久化缓存已经能很好地解决重复编译问题。但如果是 Webpack 4 的老项目DLL 依然是个有效手段。externals的配置更简单在vue.config.js里module.exports { configureWebpack: { externals: { echarts: echarts, element-ui: ELEMENT } } }然后在index.html里用 script 标签引入对应的 CDN 资源。注意这种方式需要确保 CDN 资源稳定可用内网项目慎用。4. 常见问题与排查技巧4.1 设了参数还是崩怎么办这是最让人抓狂的情况。明明设了 8192还是报 out of memory。可能的原因有几个原因一参数没生效。检查方式是在构建命令里加--trace-gc看输出的 GC 日志里堆上限是不是你设的值。或者更简单在构建脚本开头打印process.env.NODE_OPTIONS和v8.getHeapStatistics().heap_size_limit。原因二崩的不是主进程。有些工具比如thread-loader、terser-webpack-plugin的多进程模式会 spawn 子进程子进程不一定继承NODE_OPTIONS。这种情况需要在工具配置里单独指定或者用--max-old-space-size直接传给子进程。原因三内存泄漏。如果构建过程中内存持续增长不释放那可能是某个 loader 或插件有泄漏。这种情况比较少见但确实存在。排查方式是分阶段构建看哪个阶段内存涨得最凶。原因四物理内存真的不够。设了 8192 但机器只有 8GB 内存系统本身还要占一部分实际可用可能就 5GB 到 6GBNode 一冲高就触发系统 OOM Killer表现和 V8 报错类似但原因不同。这种情况只能降参数或者加内存。4.2 CI 环境下的特殊处理CI 环境比如 GitLab CI、GitHub Actions、Jenkins通常跑在容器里内存限制比本地严格。很多 CI 默认给 2GB 或 4GBNode 默认上限加上系统开销很容易顶满。处理方式是在 CI 配置里显式设置NODE_OPTIONS并且根据容器实际内存调整。比如 GitHub Actions 的 workflow 文件里jobs: build: runs-on: ubuntu-latest env: NODE_OPTIONS: --max-old-space-size4096 steps: - uses: actions/checkoutv3 - run: npm ci - run: npm run build注意这里设 4096 是因为 GitHub Actions 的 runner 通常有 7GB 内存留一半给系统和其他进程比较稳妥。如果你的 CI 容器内存更小要相应调低否则设了也没用反而可能因为超过容器限制被直接杀掉。4.3 排查速查表我把这些年遇到的相关问题和解决方式整理成一张表方便对照排查现象可能原因排查方式解决方式报错但参数已设参数未生效打印 heap_size_limit检查 NODE_OPTIONS 传递链路构建中途崩子进程内存超限观察子进程 RSS给子进程单独设参数内存持续增长loader/插件泄漏分阶段构建观察升级或替换问题插件CI 上崩本地正常容器内存限制查看容器内存配额调低参数或加容器内存设大参数后系统卡死物理内存不足看系统监控降参数或加物理内存只有 build 崩 serve 正常压缩阶段吃内存关闭 source map 测试优化压缩配置4.4 几个容易踩的坑坑一参数单位写错。--max-old-space-size4是 4MB不是 4GB。这个错误我见过不止一次写的人以为单位是 GB结果反而更容易崩。坑二在package.json里用node --max-old-space-sizexxx直接调 CLI。比如build: node --max-old-space-size8192 vue-cli-service build这个写法在有些环境下不生效因为vue-cli-service是个 shell 脚本而不是 JS 文件node 直接执行会报错。正确做法是用NODE_OPTIONS环境变量。坑三忽略了--max-semi-space-size。除了老生代堆新生代semi-space也有大小限制。对于大量短生命周期对象的构建场景适当调大新生代也能减少 GC 频率。可以配合使用--max-semi-space-size128单位 MB。坑四以为设了参数就万事大吉。参数只是提高上限如果项目本身有内存泄漏或者构建配置极度不合理设多大都可能崩。根本解决还是要优化构建配置。坑五团队协作时配置不统一。有人本地设了 8192有人没设导致我本地能构建你本地不行。这种情况一定要把配置写进package.json的 scripts 或者.npmrc提交到版本库保证所有人一致。5. 长期优化与工具链演进5.1 从 Webpack 到 Vite 的内存收益如果你的项目还在用 Webpack 4 或者 Vue CLI 4并且构建内存问题反复出现认真考虑一下迁移到 Vite。Vite 在开发阶段用 esbuild 做依赖预构建esbuild 是 Go 写的内存效率和速度都比 Node 上的 Webpack 高一个数量级。生产构建 Vite 默认用 Rollup内存占用也比 Webpack 温和。我实测过一个中型 Vue 2 项目Webpack 构建峰值内存约 3.5GB迁移到 Vite 后降到 1.2GB 左右构建时间从 90 秒降到 25 秒。当然迁移本身有成本尤其是用了很多 Webpack 特有插件的老项目需要评估工作量。5.2 持久化缓存的价值Webpack 5 引入了持久化缓存可以把构建结果缓存到磁盘二次构建时直接复用大幅减少重复编译。配置方式module.exports { cache: { type: filesystem, cacheDirectory: path.resolve(__dirname, node_modules/.cache/webpack) } }开启后第二次构建的内存峰值和耗时都会明显下降。Vue CLI 5 默认就开启了文件系统缓存如果你还在用 Vue CLI 4升级到 5 能直接受益。5.3 监控构建内存的实用手段想长期跟踪构建内存情况可以在构建命令里加--trace-gc输出 GC 日志或者用node --inspect配合 Chrome DevTools 做堆快照分析。更轻量的方式是在构建脚本里包一层定期打印process.memoryUsage()setInterval(() { const used process.memoryUsage() console.log(RSS: ${(used.rss / 1024 / 1024).toFixed(0)}MB, Heap: ${(used.heapUsed / 1024 / 1024).toFixed(0)}MB) }, 5000)这个脚本可以在构建时临时挂上观察内存曲线找出峰值出现的阶段。5.4 我的个人经验总结折腾了这么多年构建内存问题我最大的体会是不要等到崩了才想起来优化。项目规模到一定程度构建内存问题一定会出现与其被动救火不如提前做好几件事第一在项目初期就把NODE_OPTIONS配置写进 scripts给一个合理的默认值比如 4096别等崩了再加。第二生产构建默认关闭 source map需要时再开。第三定期清理node_modules和构建缓存避免缓存膨胀。第四关注构建工具的版本升级新版本往往在内存和速度上有优化。最后分享一个小技巧如果你不确定该设多大可以先设一个很大的值比如 16384构建成功后用--trace-gc看实际峰值再按 1.5 倍安全余量回设。这样既不会因为设太小反复崩也不会因为设太大浪费内存。这个办法我用了很多次基本一次就能找到合适的值。

相关新闻

25 美元的国产香水,在 TikTok 美区卖到月销 195 万美元

25 美元的国产香水,在 TikTok 美区卖到月销 195 万美元

出门之前的每个傍晚,美国的年轻女孩都有一件躲不开的事,在手腕上按一下香水,再抬手闻一闻,而这一下闻完,她们才敢推门出去。这个动作在美区传了很多年,瓶子里的东西换过好几代,从专柜的经典款&a…

2026/10/15 2:09:15 阅读更多 →
Bootstrap折叠面板全解析:从手风琴到状态机,一文搞定交互与避坑

Bootstrap折叠面板全解析:从手风琴到状态机,一文搞定交互与避坑

/* 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 2:09:15 阅读更多 →
市面上有哪些是真正靠谱的降AI率工具(轻松压低AI生成疑似率)

市面上有哪些是真正靠谱的降AI率工具(轻松压低AI生成疑似率)

本篇结合全网实测数据,精选千笔AI、笔捷 AI、豆包、DeepSeek、QuillBot、StealthWriter共 6 款主流工具,重点对比降 AI 率真实效果、降重能力、学术合规、免费权益、适配场景,附完整对比表格,告诉你哪些是真好用、哪些是智商税&am…

2026/10/15 2:09:15 阅读更多 →

最新新闻

ESXi 升级到 8.0 后 VM 快照删不掉?一篇讲透 “in progress“ 死循环的 3 种解法

ESXi 升级到 8.0 后 VM 快照删不掉?一篇讲透 “in progress“ 死循环的 3 种解法

本文适用版本:ESXi 7.0 U3 → 8.0 U2 升级场景(vSphere 6.7 升级也会遇到) 阅读时长:约 8 分钟 难度:⭐⭐⭐(操作不可逆,生产 VM 强烈建议先备份再动)一、为什么写这篇文章?最近私信里又有几位网友问:ESXi 7.0 升到 8.0 之后,VM 的快照怎么都删不掉,vSphere Client 里一直显示…

2026/10/15 2:48:27 阅读更多 →
ESXi ping 得通但连不上 vCenter?一篇讲透 hostd 假死的全套救法

ESXi ping 得通但连不上 vCenter?一篇讲透 hostd 假死的全套救法

本文适用版本:ESXi 7.0 U3 / 8.0 U2 / 9.0 GA 阅读时长:约 7 分钟 难度:⭐⭐(SSH 能进就能修,但要分清是 hostd 还是 vpxd 的锅)一、为什么写这篇文章?最近私信里又陆续收到几位网友问:ESXi 能 ping 通、SSH 也能进、DCUI 也正常,但 vCenter 里主机显示"未响应"或&q…

2026/10/15 2:48:27 阅读更多 →
前端XSS防御实战:xss-filters上下文转义库详解

前端XSS防御实战:xss-filters上下文转义库详解

简介:前端开源库-xss-filters是一份面向前端开发者与安全入门者的XSS防护工具源码包,聚焦于解决用户输入回显场景下的跨站脚本注入风险。资源共30个文件,以20个js源码与测试脚本为主体,辅以3个json配置、3个md说明文档&#xff0c…

2026/10/15 2:48:27 阅读更多 →
ESXi 装系统报错 “bootbank is corrupted“ 怎么办?一篇讲透三种根治方案

ESXi 装系统报错 “bootbank is corrupted“ 怎么办?一篇讲透三种根治方案

本文适用版本:ESXi 7.0 U3 / 8.0 U2 / 9.0 GA(三版统一报错,解决方案略有差异) 阅读时长:约 8 分钟 难度:⭐⭐⭐(需在 DCUI/物理机前操作,不建议生产机远程盲操作)一、为什么写这篇文章? 最近陆续有几位网友私信问同一个问题:装 ESXi 的时候跑到一半,屏幕突然卡住,报 bootbank…

2026/10/15 2:48:27 阅读更多 →
React Native position 定位详解:relative 与 absolute 实战指南

React Native position 定位详解:relative 与 absolute 实战指南

1. 为什么 position 定位值得单独拎出来讲做 React Native 开发的人,迟早都会在布局上栽跟头。Flexbox 那一套东西,flexDirection、justifyContent、alignItems三板斧抡完,大部分界面确实能搭出来。但总有一些场景,光靠 Flex 流式…

2026/10/15 2:48:27 阅读更多 →
从零开发聚合9大视频网站的桌面App:技术选型与发布运营复盘

从零开发聚合9大视频网站的桌面App:技术选型与发布运营复盘

前阵子我在一个技术交流群里发了句感叹:“现在做桌面应用,是不是有点逆潮流?”结果有个朋友直接回我:“你做一个有用的桌面工具试试,用户在乎的是好不好用,又不是你用什么平台。”我当时不以为然&#xff0…

2026/10/15 2:47:27 阅读更多 →

日新闻

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/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/14 7:53:34 阅读更多 →