WebStorm 2024调试Next.js TypeScript:packages断点失效求助
在WebStorm中调试多Next.js应用Turbo项目时命中Workspace依赖断点的解决方法
针对你用Turbo运行多个Next.js应用,Workspace依赖包(如@ourPackages/admin-utils)断点被跳过的问题,按以下步骤排查修复:
检查Workspace包的TypeScript配置
确保依赖包的tsconfig.json开启源映射,这是断点命中的基础:{ "compilerOptions": { "sourceMap": true, "inlineSourceMap": false, "declarationMap": true } }同时确认包的编译脚本(比如
tsc -w)会输出.js.map文件,且和编译后的.js文件放在同一目录。配置WebStorm调试器路径映射
- 打开Run/Debug Configurations,找到你的npm dev脚本配置
- 切换到Debugger标签,找到Source maps设置
- 添加路径映射:
- 本地路径:指向
@ourPackages/admin-utils的源码根目录(例如./packages/admin-utils/src) - 远程URL:对应包在Next.js应用中的加载路径,通常为
webpack:///./node_modules/@ourPackages/admin-utils,如果Turbo将包编译到缓存目录,就对应缓存中的路径
- 本地路径:指向
调整Turbo构建配置
在turbo.json中确保dev任务保留源映射文件:{ "pipeline": { "dev": { "dependsOn": ["^dev"], "outputs": ["dist/**", "*.js.map"] }, "watch:packages": { "persistent": true, "outputs": [] } } }避免Turbo构建时剥离源映射,保证构建产物中
.js.map文件不被删除。修正WebStorm断点相关设置
- 确保断点设置在TypeScript源码文件上,而非编译后的JS文件
- 右键断点,确认Enabled和Suspend选项已勾选,无无效条件过滤
- 关闭「仅调试我的代码」:进入Settings > Build, Execution, Deployment > Debugger > Stepping,取消勾选Do not step into library scripts(Workspace包会被IDE识别为库脚本,默认跳过)
清理缓存并重启调试
停止所有Turbo和Next.js进程,删除node_modules/.cache、.next、dist等缓存目录,重启WebStorm后重新启动调试会话。
内容的提问来源于stack exchange,提问作者aamurad
相关产品推荐
相关产品推荐

