Midway Hooks 本地调试完全指南:VSCode 与 JetBrains 全家桶断点调试实战
后端微服务云原生【免费下载链接】midway A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 项目地址https://gitcode.com/gh_mirrors/mi/midway点击查看免费下载本文聚焦 Midway Hooks一体化全栈方案应用在本地开发阶段的调试实践覆盖 VSCode 与 JetBrains 系 IDEWebStorm / IntelliJ IDEA 等两大类编辑器环境。读完本文你将掌握基于编辑器原生能力的三种断点调试手段并理解 Hooks 项目启动命令与调试器之间的关系能够随时在本地代码中打断点、看变量、跟调用栈。调试前的基础理解 Hooks 项目的启动命令在开始断点调试之前需要先明确 Hooks 项目的启动方式。Midway Hooks 提供midwayjs/hooks-kit来支撑全栈应用的开发与构建其命令行工具hooks可以通过 npm scripts 或npx hooks调用详见全栈套件文档。一个由脚手架创建的 Hooks 项目默认 npm scripts 通常长这样{ scripts: { dev: hooks dev, // 启动开发服务器含热更新 start: hooks start, // 启动生产服务器使用前请先运行 npm run build build: hooks build // 为生产环境构建产物 } }hooks dev启动的是开发服务器会监听文件变更并自动重载hooks start则是面向生产环境的启动命令。因此在本地调试时通常选择dev命令进入开发模式。如果你使用的是标准 Midway 项目非 Hooks 套件仓库中的示例项目给出了另一种常见形态。例如 samples/functional-api-service/package.json 与 samples/functional-api-hybrid/package.json 中{ scripts: { build: tsc -p tsconfig.json, start: node dist/bootstrap.js, test: cross-env NODE_ENVunittest mocha } }这类项目先通过npm run build将 TypeScript 编译到dist目录再由node dist/bootstrap.js启动。无论采用哪种启动方式其本质都是在某个 Node.js 进程中运行你的应用代码——这正是编辑器可以附加调试器的入口。在 VSCode 中调试方法一JavaScript Debug Terminal零配置断点调试VSCode 自带调试能力其中最简单、最零配置的方式是使用JavaScript Debug Terminal。打开 VSCode 的终端下拉菜单终端面板右上角的号旁边的下拉箭头选择JavaScript Debug Terminal创建一个自带调试能力的终端。在该终端中运行任意启动命令例如npm start或npm run devVSCode 会自动进入调试模式。在源码中点击行号左侧设置断点请求触发到断点行时程序即会暂停你可以查看变量、调用栈并进行单步调试。这种方式的优势在于不需要编写任何配置文件终端中运行的一切 Node 相关命令都会自动被调试器接管非常适合快速上手。在 Hooks 项目中直接运行npm run dev即hooks dev即可享受这一能力。方法二Debug Scripts从 package.json 一键启动调试如果你不想切换终端VSCode 还提供了基于package.json的调试入口打开项目的package.json文件。将鼠标悬停在scripts字段上方的行号位置VSCode 会显示一个Debug按钮一个带有绿色播放图标的文字链接。点击 Debug 按钮从弹出的列表中选择要执行的脚本例如start或dev。VSCode 会在调试模式下运行所选脚本命中断点后即可进行调试。这种方式相当于把创建调试终端 运行命令两步合并为一次点击调试目标明确尤其适合在多个脚本dev/start/test之间切换的场景。方法三配置 launch.json 精确控制调试进阶推荐当默认方式无法满足需求例如需要指定环境变量、附加子进程、设置调试端口时可以显式配置调试文件。创建.vscode/launch.json复制以下配置该配置源自仓库调试章节文档{ version: 0.2.0, configurations: [{ name: Midway Local, type: node, request: launch, cwd: ${workspaceRoot}, runtimeExecutable: npm, windows: { runtimeExecutable: npm.cmd }, runtimeArgs: [ run, dev ], env: { NODE_ENV: local }, console: integratedTerminal, protocol: auto, restart: true, port: 7001, autoAttachChildProcesses: true }] }对关键配置项逐一说明request: launch以启动进程的方式调试若你的应用已在外部启动可改为attach并配合port附加到已有调试端口。runtimeExecutable/runtimeArgs指定通过 npm 执行run dev。在 Windows 上 npm 的可执行文件是npm.cmd因此通过windows字段单独覆盖。env.NODE_ENV设置为local与 Midway 本地开发环境约定一致。console: integratedTerminal调试进程运行在 VSCode 集成终端中便于观察日志输出。restart: true进程退出后自动重启配合文件变更后的自动重启逻辑使用。port: 7001Node.js 调试协议监听的端口。默认 7001 为 Midway 应用本地常用端口若冲突可在runtimeArgs之外通过应用配置调整。autoAttachChildProcesses自动附加子进程。Midway 应用可能在启动阶段 fork 子进程开启后调试器会一并接管避免子进程中的断点无法命中。保存配置后在代码中设置断点点击调试面板的运行按钮或按 F5即可以断点方式启动hooks dev/npm run dev看到程序暂停在断点处即可开始排查问题。在 JetBrains 系 IDEWebStorm / IDEA 等中调试JetBrains 系 IDE 同样支持对package.jsonscripts 的一键调试操作路径与 VSCode 的 Debug Scripts 类似打开项目中的package.json文件编辑器会在scripts字段左侧显示运行按钮绿色播放图标。点击scripts中目标命令所在行左侧的运行按钮在下拉菜单中选择Debug或先点击Run旁边的小箭头再选择Debug start之类带 Debug 前缀的选项。IDE 会创建一个临时运行配置并在调试模式下执行该脚本。在代码中设置断点请求触发后程序暂停即可使用 IDEA 的调试窗口查看变量、表达式求值和调用栈。如果你需要更精细的控制也可以手动创建运行配置Run → Edit Configurations → 新建 Node.js 运行配置指定package.json文件、选择要执行的scripts如dev/start/test同样可以获得稳定的调试会话。对于仓库中的示例项目其 npm scripts 已被整理在各自的 package.json 中build/start/test在 JetBrains IDE 中打开这些文件后即可直接对start命令按下 Debug 按钮进行断点调试。调试时的几个实用要点结合 Hooks 应用的实际运行机制以下几点在调试时值得留意选择正确的启动命令本地开发优先使用devhooks dev它具备热更新能力如果调试的是线上问题复现可以使用starthooks start但需确保已先执行npm run build生成最新产物。断点应落在 TypeScript 源码而非编译产物上编辑器调试器通过 sourcemap 将运行时位置映射回src下的 TS 源码因此你看到的断点、变量都对应源码行。Hooks 项目的构建流程如 tsup / tsc会默认产出 sourcemap无需额外配置即可源码级调试。留意调试端口占用使用launch.json方式时port配置了调试协议端口默认 7001 也是应用本地端口若提示端口被占用可在配置中调整或改用autoAttachChildProcesses 附加模式。结合测试代码验证调试效果仓库 Hooks 测试文档 展示了通过midwayjs/mock的createHttpRequest直接调用接口的写法。调试阶段你同样可以在测试用例中打断点快速复现并定位某条接口逻辑的问题而无需完整启动浏览器端。小结Midway Hooks 应用的本地调试并不依赖任何框架特有的黑盒机制——它就是一次标准的 Node.js 进程调试。无论你偏好 VSCode 的 JavaScript Debug Terminal、package.json 的 Debug 按钮还是 JetBrains 系 IDE 的 scripts 调试入口核心都是以调试模式启动应用 在源码中打断点。更进一步的需求指定环境变量、附加子进程、固定调试端口则可以通过 .vscode/launch.json 配置 实现精确控制。掌握这些手段后配合 Hooks 接口的测试方法与部署方案你就能在本地快速定位问题放心地推进全栈开发。赞分享后端微服务云原生【免费下载链接】midway A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 项目地址https://gitcode.com/gh_mirrors/mi/midway点击查看免费下载相关推荐Midway 项目调试全指南在 VSCode 与 WebStorm 中配置断点调试Midway 项目调试全指南在 VSCode 与 WebStorm 中配置断点调试 本指南面向使用 Midway midwayjs/koa 等 Web 框后端微服务云原生motia脚本调试VSCode断点配置全指南motia脚本调试VSCode断点配置全指南 引言为什么需要专业的调试配置 在事件驱动的智能自动化框架motia中脚本调试面临三大挑战多语言混合执行后端流程编排任务调度可观测性NodeGui 在 VSCode 中调试 Qode 进程launch.json 配置与断点调试完全指南NodeGui 在 VSCode 中调试 Qode 进程launch.json 配置与断点调试完全指南 NodeGui 桌面应用并非运行在标准 node 进程桌面应用跨平台上一篇min-sized-rust中的时间函数精简时间处理减小二进制大小下一篇Sunshine 游戏串流4 步把 PC 游戏免费推上手机和电视创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Halide 调度陷阱全景指南:并行循环放置、compute_at 重计算与递归轴的排查与修复

Halide 调度陷阱全景指南:并行循环放置、compute_at 重计算与递归轴的排查与修复

编译器图像处理编程语言高性能计算 【免费下载链接】Halide a language for fast, portable data-parallel computation 项目地址: https://gitcode.com/gh_mirrors/ha/Halide 点击查看 免费下载 本文是 Halide 调度实战中"高发陷阱"的系统性指南&#x…

2026/10/12 15:08:21 阅读更多 →
用COM ATL开发Windows任务栏右键菜单扩展

用COM ATL开发Windows任务栏右键菜单扩展

简介:这是一套面向Windows开发者的COM外壳扩展项目源码,基于ATL实现任务栏右键菜单自定义菜单项并显示图标。资源共30个文件,主要包含C/C源代码(.cpp/.h)、COM接口定义与注册脚本(.idl/.rgs/.def&#xff0…

2026/10/15 1:14:46 阅读更多 →
2026 想拿 AI 工程师 Offer?别只会调 API——这 8 层能力才是分水岭

2026 想拿 AI 工程师 Offer?别只会调 API——这 8 层能力才是分水岭

摘要很多人以为懂 AI 就是会调用 LLM API、会写几句 prompt。2026 年,这个门槛已经过时了。真正值钱的 AI 工程师,是能把模型放进生产系统里跑起来、还能在它崩的时候救回来的人。一张流传很广的《2026 AI Engineer 通关路线图》,把能力拆成了…

2026/10/11 18:23:07 阅读更多 →

最新新闻

基于MP2642GR-Z与PIC18F87K22的2S电池主动均衡模块设计

基于MP2642GR-Z与PIC18F87K22的2S电池主动均衡模块设计

/* 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 1:14:56 阅读更多 →
SPFA负环检测实战:POJ 2240套利问题与对数转化技巧

SPFA负环检测实战:POJ 2240套利问题与对数转化技巧

/* 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 1:14:56 阅读更多 →
Android本地MP3播放器实战:MediaPlayer状态机与前台服务设计

Android本地MP3播放器实战:MediaPlayer状态机与前台服务设计

/* 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 1:14:56 阅读更多 →
51单片机汽车自动照明系统:光敏+超声波协同远近光智能控制

51单片机汽车自动照明系统:光敏+超声波协同远近光智能控制

/* 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 1:14:56 阅读更多 →
SLS只读助手:会话权与日志读权限拆开

SLS只读助手:会话权与日志读权限拆开

人只能给指定数字员工开会话,员工再用单独角色读日志。两层写进同一条策略,就会出现打得开却查不到,或者名单可见的库被整库读走。 目录 前言 一、会话权和读日志权拆开 二、开工前只读盘点 三、角色只读指定 Logstore 四、人的策略只绑一组、只对一名员工

2026/10/15 1:14:56 阅读更多 →
Apollo-11 自动化任务调度框架:状态机与插件化设计实践

Apollo-11 自动化任务调度框架:状态机与插件化设计实践

/* 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 1:13:56 阅读更多 →

日新闻

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 阅读更多 →