0

0

如何在vscode中调试JavaScript代码_使用断点和浏览器的技巧是什么【教程】

夜晨

夜晨

发布时间:2026-01-23 12:05:33

|

723人浏览过

|

来源于php中文网

原创

VS Code调试JavaScript断点失效主因是source map未启用或调试器未连上目标页面;需配置launch.json的type为"pwa-chrome"、request匹配启动方式、webRoot指向源码根目录,并确保Chrome开启远程调试端口且url完全一致。

vs code 调试 javascript 代码不需要装额外插件(只要项目在浏览器中运行),关键在于正确配置 launch.json 并理解 chrome devtools 与 vs code 的断点协同机制——很多“断点不命中”问题其实出在源码映射或启动方式上。

为什么在 VS Code 里打的断点没反应?

最常见原因是没启用 source map 或调试器没连上目标页面。VS Code 默认不会自动打开浏览器,它依赖 Chrome 的远程调试协议(--remote-debugging-port=9222)来通信。

  • 确保 Chrome 启动时带了调试端口参数(手动或用 open 命令)
  • 检查项目是否生成了有效的 sourceMap(如 Webpack 配置中 devtool: 'source-map''inline-source-map'
  • launch.json 中的 url 必须和实际访问地址完全一致(包括 http://、端口、路径,甚至末尾斜杠)
  • 如果用 Vite / Create React App 等工具链,优先选 Attach to Browser 模式而非 Launch Browser,避免端口冲突

如何配置 launch.json 让断点真正生效?

不要直接复制网上的模板,重点看三个字段:typerequestwebRoot。VS Code 的 JavaScript 调试器识别的是 type: "pwa-chrome"(新版),不是旧的 chrome

  • "type": "pwa-chrome":必须写对,否则调试器加载失败
  • "request": "launch" 会自动开新 Chrome 实例;"request": "attach" 则连接已打开的、带调试端口的实例
  • "webRoot": "${workspaceFolder}":告诉调试器源码根目录在哪,否则断点位置无法映射到原始 .js 文件
  • 如果页面通过 file:// 协议打开(比如双击 HTML),Chrome 默认禁用调试,需加启动参数 --unsafely-treat-insecure-origin-as-secure="file:///" --user-data-dir=/tmp/chrome-test

浏览器里哪些操作会影响 VS Code 断点行为?

VS Code 断点本质是转发给 Chrome DevTools 的,所以浏览器侧的设置会直接影响调试体验:

Synthesys
Synthesys

Synthesys是一家领先的AI虚拟媒体平台,用户只需点击几下鼠标就可以制作专业的AI画外音和AI视频

下载
  • Chrome 的 Disable JavaScript 开关打开时,所有断点失效(VS Code 不报错,但无响应)
  • 页面使用了 eval() 或内联脚本且没 source map,断点只能打在压缩后代码上(表现为灰色、不可点击)
  • 在 Chrome 的 Sources 面板里手动禁用了某个 script,VS Code 对应文件的断点也会变灰失活
  • F5 刷新页面时,如果 launch.jsonlaunch 模式,VS Code 会重启 Chrome;如果是 attach 模式,则只刷新页面,断点保留

真正麻烦的不是设断点,而是确认当前执行的 JS 是否被正确映射回源码——尤其在用构建工具时,webpack:///webpack://./ 这类虚拟路径经常导致断点偏移。建议第一次调试前,在 Chrome 的 Sources 面板里展开左侧面板,确认能看到你的原始 .ts/.js 文件,而不是一堆 app.js:123

立即学习Java免费学习笔记(深入)”;

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

557

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

395

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

756

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

478

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

494

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

1071

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

659

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

554

2023.09.20

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

React核心原理新老生命周期精讲
React核心原理新老生命周期精讲

共12课时 | 1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号