当前位置: 首页 > 知识库问答 >
问题:

前端 - vscode 书签标记代码 : 如何针对运行时构建的代码文件进行标记?

东方俊力
2025-03-02

老哥们,我现在有一个 next 的项目, debug 跑来, 调试过程中有一个文件(rsc)\node_modules\next-auth\index.jst.values, 这个文件可以在 debug 的"已载入的脚本"窗口中看到
https://imgur.com/fc7D71K
https://imgur.com/IPTJrDx

然后我想针对第 xx 行代码进行 书签标记, 以便后续能够快速找到他.
现在遇到的问题:

  1. 有的时候 手动做了标记,但是标记不上去, 左侧没有显示标记书签 icon
    2.即便标记成功了,在书签栏中 点击标记的那个条目 也无法打开并跳转到相应的位置.
    https://imgur.com/KGSBpjw

问题的关键好像是 载入的脚本(rsc)\node_modules\next-auth\index.jst.values 不是源文件 导致标记存在问题.

而对 node_modules\@auth\core\adapters.d.ts 这种文件书签标记 是没什么问题的.

所以 对这种 代码如何标记? 有什么好的办法方便在 debug 中来回在多个关键位置快速跳转?

共有1个答案

华锦
2025-03-02

问题核心原因

动态生成的运行时文件(如rsc目录下的index.jst.values)路径可能与本地项目路径不匹配,导致VS Code无法建立稳定的文件关联。书签功能依赖绝对路径映射,而调试器加载的临时文件可能被识别为外部资源。


解决方案汇总

方案1:路径映射修正(推荐)

  1. 调试配置:在.vscode/launch.json中添加路径映射规则:

    {
      "configurations": [{
     "sourceMapPathOverrides": {
       "webpack:///./*": "${workspaceFolder}/*",
       "rsc/node_modules/next-auth/*": "${workspaceFolder}/node_modules/next-auth/*"
     }
      }]
    }
  2. 工作区信任:确保项目文件夹已被VS Code标记为"Trusted Workspace"

方案2:使用调试器自带的断点替代

  1. 直接在调试侧边栏的"Loaded Scripts"中找到文件
  2. 右键点击目标行号 -> Add Breakpoint
  3. 通过调试器的断点列表实现跳转(即使断点未命中也可保留位置)

方案3:强制文件关联

  1. 在本地创建空文件路径:

    mkdir -p rsc/node_modules/next-auth/
    touch rsc/node_modules/next-auth/index.jst.values
  2. 使用File: Save as Workspace保存工作区状态

方案4:使用增强型书签插件

  1. 安装更强大的书签插件:Bookmark Manager
  2. 在插件设置中启用:

    "bookmarkManager.keepRealPath": true

验证步骤

  1. 在调试暂停状态下,通过命令面板执行Debug: Open Loaded Script
  2. 搜索目标文件后,检查文件路径是否显示为蓝色链接(表示有效映射)
  3. 使用Ctrl+Shift+P执行>Bookmark: Toggle确认书签持久化
注意:对于Next.js的RSC文件,建议通过 next.config.js配置 experimental.instrumentationHook: true来改善调试映射
 类似资料:
  • 我似乎一直在尝试在vscode中运行python3文件。我注意到右上角运行代码的三角形按钮也不再是绿色。 我已经为python3建立了自己的venv,并且安装了numpy包——我已经检查了< code>pip list,它在那里,并且在导入时调用这个包中的任何方法时运行良好。 当我右键单击vscode中的文件并单击在终端中运行Python文件时-它运行得非常好,并为我提供了所需的输出。 但是,当我

  • 我使用jsonschema生成器基于我的POJO生成JSON模式文件。目前,我正在通过一个在<code>gradle构建</code>步骤中运行的测试来完成这项工作。这工作正常,但感觉不对,因为我所做的并不是测试任何东西。 我还找到了这个答案,其中详细说明了如何在上运行它,但这也不理想,因为它会在每次应用程序出现时毫无意义地执行它,但在我构建时不会。 因此,有没有一种方法可以告诉gradle(在中

  • Xcode 8将在我对代码进行任何更改后构建我项目中的每个目标。不过,在我重新启动Xcode后不会发生这种情况。每次更改后,它通常需要一段时间(20-60分钟左右)才能开始构建所有目标。 到底发生了什么?这很烦人,会降低效率。在首选项中 谢谢, -只是科尔布斯

  • 我正在尝试构建一个示例java项目,并尝试构建一个docker映像并将该映像推送到AWS ECR,但在登录AWS ECR时遇到了一个问题。 错误:命令执行错误:执行命令时出错:aws ecr public get login password--区域us-east-1 | docker login--用户名aws--密码stdin public。ecr。aws/z8i5y3u6。原因:退出状态1

  • 我试图得到一些代码语法高亮我写的一些文档,我使用HAML和Highlight.js这将适用于像这样的单行Ruby代码(虽然高亮不是很好): 但是如果我尝试在< code>pre和< code>code标记中编写一些CSS,就像这样: 我得到“非法嵌套:纯文本嵌套是非法的。”错误,由于CSS末尾的括号。 有人知道使用HAML在网页上编写代码示例(主要是SASS、Ruby、HAML、Coffeescr

  • 问题内容: 我需要能够使用来自CA的证书对jar文件进行签名。 我按照GoDaddy文档中的说明进行操作:http : //support.godaddy.com/help/article/4780/signing-java- code 但是,第3步需要导入从GoDaddy网站获得的证书文件。根据文档,命令为: 尽管我成功提交了CSR(由keytool生成)并获得了答复,但我终生无法弄清楚如何获取

  • 问题内容: 我想知道是否有C的Java等效项 可以在我们不想编译的代码块周围使用。添加块引号: 也有相同的效果,但是问题是,我们必须确保没有单行注释 在块中。 问题答案: Java中没有预处理程序指令。最好的选择是注释掉代码。