vscode调试编译过的js代码步骤解析

这次给大家带来vscode调试编译过的js代码步骤解析,vscode调试编译过的js代码注意事项有哪些,下面就是实战案例,一起来看一下。

前言

在开发的过程中,几乎不可能一次性就能写出毫无破绽的程序,断点调试代码是一个普遍的需求。

vscode 是一个非常棒的注意事项,内置功能强大的调试能力。经过简单的设定,就可以对 js 文件进行调试。但有时我们想要调试的内容是经过编译的,当然我们可以直接调试编译后的代码。但经过编译压缩以后的代码,可读性很差,且也可能无法分模块查看了,有什么方法进行编译前的代码调试么?答案当然是肯定的。

下面话不多说了,来一起看看详细的介绍吧。

vscode 的常规调试

vscode 的调试界面在窗口最左边:

vscode调试编译过的js代码步骤解析

最新版本的vscode,该选项默认隐藏了,需要自己打开。

首次打开调试界面时,当前没有任何调试配置,我们可以点击齿轮 icon 添加一个:

vscode调试编译过的js代码步骤解析

选择 nodejs 后,会自动在当前工程目录下添加 .vscode/launch.json 文件,这个文件就是 vscode 调试注意事项。

一个简易的配置文件内容为:

{ // 使用 IntelliSense 了解相关属性。  // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "启动程序", "program": "${workspaceFolder}/index.js" } ]}

登录后复制

上面这个配置所做的工作是启动当前目录下的 index.js 文件进行调试。

我们也可以设置每次摁 F5 时自动调试当前打开的文件,只需要修改 program:

{ "program": "${file}"}

登录后复制

调试编译后的文件

想要调试编译后的文件,需要对 launch.json 文件进行设置。

vscode 要想调试编译后的代码,他需要知道哪些代码是经过编译的,且需要知道编译后的代码与编译前代码的对应关系。

其实理论上 vscode 是可以把每个要执行的文件都认为是编译后的文件,进行源文件的查找?我猜是因为性能原因,我们需要自己指定哪些文件是编译后的文件。在 launch.json 中,使用outFiles属性来指定编译后的产出文件:

{ "version": "0.2.0", "configurations": [ { // 省略其他设置... "outFiles": [ "${workspaceFolder}/lib/*.js", ] // ... } ]}

登录后复制

虽然有些麻烦,但好在我们可以使用注意事项。

现在有了编译后的文件,vscode 还需要知道源文件,以及编译后文件与源文件的对应关系,听着有没有很熟悉?这个过程就是通过 sourcemap 来进行实现的。

我们需要在编译 js 文件时生成相应的 .map 文件,并在产出 js 文件后面附加 .map 文件的地址:

//@ sourceMappingURL=./index.js.map

登录后复制

ok,现在 vscode 在执行 js 文件时,会从 outFile 中查找是否是编译后的代码,如果是,就通过 sourcemap 映射到源代码,方便我们进行调试。

自动执行编译

现在我们的开发流程变成了:修改源代码 -> 编译源代码 -> 调试。

为了方便,我们可以设置preLaunchTask属性,该属性的作用是每次调试前执行一个前置任务,我们可以把编译过程放在前置任务里。

首先我们需要来配置一个task,task的配置文件在 .vscode/tasks.json,可以打开 command palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 选择“任务:配置任务”自动生成一个:

{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build", "type": "npm", "script": "build", "problemMatcher": [] } ]}

登录后复制

这里我们配置了npm run build作为前置任务,每次执行调试时都会先进行 build。

示例配置文件

{ // 使用 IntelliSense 了解相关属性。  // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "example", "program": "${workspaceFolder}/index.js", "preLaunchTask": "build", "cwd": "${workspaceFolder}", "outFiles": [ "${workspaceFolder}/lib/*.js" ] }

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

注意事项

注意事项

以上就是vscode调试编译过的js代码步骤解析的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2760231.html

(0)
上一篇 2025年3月8日 09:06:01
下一篇 2025年3月8日 09:06:08

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vue页面骨架屏注入步骤详解

    这次给大家带来Vue页面骨架屏注入步骤详解,Vue页面骨架屏注入的注意事项有哪些,下面就是实战案例,一起来看一下。 作为与用户联系最为密切的前端开发者,用户体验是最值得关注的问题。关于页面loading状态的展示,主流的主要有loading…

    2025年3月8日 编程技术
    200
  • nodeJs爬虫使用步骤详解

    这次给大家带来nodeJs爬虫使用步骤详解,nodeJs爬虫使用的注意事项有哪些,下面就是实战案例,一起来看一下。 背景 最近打算把之前看过的nodeJs相关的内容在复习下,顺便写几个爬虫来打发无聊,在爬的过程中发现一些问题,记录下以便备忘…

    编程技术 2025年3月8日
    200
  • 修改Nodejs内置配置路径步骤详解

    这次给大家带来修改Nodejs内置配置路径步骤详解,修改Nodejs内置配置路径的注意事项有哪些,下面就是实战案例,一起来看一下。 Nodejs 内置的npm默认会把模块注意事项在c盘的用户AppData目录下(吐槽一下:不明白为啥现在的软…

    2025年3月8日 编程技术
    200
  • nodejs取得当前执行路径步骤详解

    这次给大家带来nodejs取得当前执行路径步骤详解,nodejs取得当前执行路径的js有哪些,下面就是实战案例,一起来看一下。 process.cwd() 当前执行程序的路径(执行命令行时候的路径,不是代码路径 例如 在根目录下执行 nod…

    编程技术 2025年3月8日
    200
  • ajax中设置contentType: "application/json"的作用(图文教程)

    这篇文章主要介绍了ajax中设置contenttype: “application/json”的作用,需要的朋友可以参考下 最近在做项目交互的时候,刚开始向后台传递数据返回 415 ,后来百度添加了 contentType:“applica…

    编程技术 2025年3月8日
    200
  • jquery的ajax和getJson跨域获取json数据(图文教程)

    本篇文章主要是对jquery的ajax和getjson跨域获取json数据的实现方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 很多开发人员在使用jquery在前端和服务器端进行数据交互,所以很容易会认为在前端利用jquery…

    编程技术 2025年3月8日
    200
  • JS基础-Math数组Date

    本篇讲解了js的基础math数组和date的相关知识。 一.Math 1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max    //不包含最大数    function getNum(min,max){      …

    编程技术 2025年3月8日
    200
  • node.js进入文件目录步骤详解

    这次给大家带来node.js进入文件目录步骤详解,node.js进入文件目录的注意事项有哪些,下面就是实战案例,一起来看一下。 要进入莫一个目录比如:”D:react” 首先要:d: 然后:cd d:eact 如图:…

    2025年3月8日
    200
  • Nodejs内存治理步骤详解

    这次给大家带来Nodejs内存治理步骤详解,Nodejs内存治理的注意事项有哪些,下面就是实战案例,一起来看一下。 s运行的宿主环境不同,相应的对内存治理的要求也不一样,当宿主环境是浏览器时,由于网页的运行时间短,且只运行在用户的机器上(相…

    编程技术 2025年3月8日
    200
  • 原生JS实现Ajax跨域请求flask响应内容(图文教程)

    这篇文章主要为大家详细介绍了js实现ajax跨域请求flask响应内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Ajax方法好,网站感觉跟高大上,但由于Js的局限,跨域Ajax无法实现,这里,讲一下解决办法,前提是需要能够自己可以…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论