You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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调试器路径映射

    1. 打开Run/Debug Configurations,找到你的npm dev脚本配置
    2. 切换到Debugger标签,找到Source maps设置
    3. 添加路径映射:
      • 本地路径:指向@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断点相关设置

    1. 确保断点设置在TypeScript源码文件上,而非编译后的JS文件
    2. 右键断点,确认Enabled和Suspend选项已勾选,无无效条件过滤
    3. 关闭「仅调试我的代码」:进入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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:37:13