前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VS Code 调试完全攻略(6):调试由 TypeScript 开发的 React

VS Code 调试完全攻略(6):调试由 TypeScript 开发的 React

作者头像
疯狂的技术宅
发布于 2020-06-04 07:26:46
发布于 2020-06-04 07:26:46
5K00
代码可运行
举报
文章被收录于专栏:京程一灯京程一灯
运行总次数:0
代码可运行

翻译:疯狂的技术宅

作者:Charles Szilagyi

来源:charlesagile

正文共:1808 字

预计阅读时间:7 分钟

‍‍说到前端,我现在选择的武器是 React、TypeScript 和 Parcel trinity。这是一个简单、可靠而且高效的设置,只需最少的配置。本文将向你展示如何在 VS Code 中创建匹配的调试器

VS Code 调试完全攻略系列目录

  1. 基础知识(点击直达)
  2. 步进逐行调试(点击直达)
  3. 编辑变量并重新执行函数(点击直达)
  4. launch.json 和调试控制台(点击直达)
  5. 基于浏览器的 React 应用(点击直达)
  6. 调试用 TypeScript 开发并打包的 React ?(? 本文)

获取代码

如果你已经有了 React、TypeScript 和 Parcel 项目,则可以跳过本节。如果没有就下载示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone git@github.com:thekarel/debug-anything.git
cd debug-anything/parcel
yarn # or npm i

代码

代码结构

这是一个简单的应用程序:你将看到博客文章标题的列表,单击标题将会获取该文章的正文,并将其显示在列表上方。

像往常一样,这个文件夹中的代码保持尽可能的简单,以便使我们把注意力集中在调试器上。在用于生产的应用程序中,我们将会使用人性化的文件夹结构。入口是 index.html,它引入 index.tsx 并运行基本的 React 程序。

你应该关注以下文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Post.ts # The Post interface type
Posts.tsx # The post-list React component
index.html # The entry-point
index.tsx # The React app
postRepository.ts # Data fetching module

总共不到 100 行,所以不要指望有什么实质性的内容?

Parcel

你可能想知道 Webpack 或 Babel 配置文件在哪里。好吧,没有!由于 Parcel 是一个零配置的打包程序,因此我们可以直接告诉它去编译代码,并且始终有效。我发现它比 Create React App 之类的其他解决方案更简单、快速。

在这个例子中,可以通过简单地将 Parcel 指向 index.html 来打包用 TypeScript 编写的整个 React 程序,这就是我们所要做的,无需为太多的事操心。值得你把一颗星星⭐️送给它:GitHub? (https://github.com/parcel-bundler/parcel)

注意:示例代码用的是 Parcel 2 alpha3。

启动服务器

yarn startnpm start 启动服务器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yarn start
yarn run v1.22.4
$ parcel index.html
ℹ️ Server running at http://localhost:1234
✨ Built in 548ms

确保你可以访问 http://localhost:1234

程序在启动时获取文章列表,然后在单击标题时从服务器获取所选文章的正文。

配置调试器

我们希望在调试时能够在 VS Code 中设置断点、启动调试浏览器、以及逐步调试获取初始列表和后续的远程请求。

为了使它尽可能简单和好用,我们将利用 launch.json 文件的优势。实际上已经为你准备好了?

launch.json

让我们打开 .vscode/launch.json 并关注 React + TS 和 Parcel 部分:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "type": "chrome",
    "request": "launch",
    "name": "Debug React, TS, Parcel app in Chrome",
    "url": "http://localhost:1234/",
    "webRoot": "${workspaceFolder}/parcel",
    "pathMapping": {
        "__parcel_source_root": "${workspaceFolder}/parcel"
    },
        "skipFiles": [
        "${workspaceFolder}/parcel/node_modules/**/*.js",
        "<node_internals>/**/*.js"
    ]
},

顺便说一下,该配置与我们的 Create React App 示例非常相似。

typerequest 参数告诉 VS Code 在新的 Chrome 窗口中开始调试。

第一次运行后,启动器的 name 将显示在调试工具栏和 IDE 的状态栏中:

name

url 需要与我们的 dev 版本的地址匹配(默认为 http://localhost:1234/)。

webRoot:与开发服务器根目录匹配的文件系统路径。通常是入口点所在的文件夹。在我们的例子中是 index.html 所在的文件夹。要注意,示例代码库中包含多个小项目。在单项目仓库中,"webRoot": "${workspaceFolder}/src" 是一个要想到的路径。

pathMapping:在当前项目的情况下,此选项是必需的,因为 Parcel 提供了一个源映射,使原始文件看起来像在 /__ parcel_source_root 下。没有这个设置,VS Code 会无法将源中的断点位置映射到运行时代码:

breakpoint bound

如果遇到 "Breakpoint set but not yet bound" 问题,请检查你的 pathMapping

你可以在调试浏览器中找到正确的路径。在 Chrome 中,打开开发者控制台,然后转到“Sources”:

查找 map name

最后,我们设置 skipFiles,使调试器永远不会 Step Into 第三方或核心 Node.js 模块。如果你想专注于自己的代码并且对花时间看库代码不感兴趣,那么跳过此类文件非常有用,强烈建议你进行调整。

使用 React + TypeScript 调试器

确保 dev 服务器正在运行,然后启动调试浏览器:

添加两个断点:一个在 fetchBody 函数内部,另一个在 useEffect hook 中:

break point

现在,我们可以重新启动调试器(而不是服务器!),并在首次安装组件时检查 hook 的行为:

接下来,我们可以遵循 fetchBody 的代码流程——注意我们是如何永远都看不到任何核心库或第三方库的(例如 Fetch 或 React 内部):

希望你能够基于这个模板在 React/TypeScript 应用中实现舒适的调试工作流程✌️

原文链接

https://charlesagile.com/debug-react-typescript

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端先锋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
VS Code 调试完全攻略(3):编辑变量并重新执行函数
可以通过在调试器中重新执行代码块,来查看它们在不同情况下的行为。在调用栈中修改变量并重新执行函数可以让你节省大量的时间!
疯狂的技术宅
2020/06/01
4K0
VS Code 调试完全攻略(4):launch.json 和调试控制台
一些更强大的调试功能仅在专用的配置文件中可用。这次我们要创建一个 launch.json 和内置的 VSCode 调试控制台。本文将会解决我们在调试复杂的程序之前的最后一个难题。
疯狂的技术宅
2020/06/04
21.1K0
VSCode 基本前端调试
from: visual studio code - run vscode chrome debugger with its extensions - Stack Overflow
jgrass
2024/12/25
1200
VSCode 基本前端调试
vscode 调试 react 项目
主要分为以下三个步骤 安装 debug for chrome 配置 launch.json 文件 配置内容如下 { "version": "0.2.0", "configurations": [{ "type": "chrome", "request": "launch", "name": "Launch Chrome", "url": "http://localhost:3000", // 改为目标 url
用户2434869
2019/10/06
2K0
我读 Typescript 源码的秘诀都在这里了
Test<T> 这个高级类型,有一个泛型参数 T,当 T 传入的类型为联合类型的时候,有两种情况:
玖柒的小窝
2021/10/05
1.1K0
我读 Typescript 源码的秘诀都在这里了
2022年了,该学会用VSCode debug了
VSCode作为目前使用人数最多的IDE,在前端开发者中也是十分受欢迎的。它免费、开源、还具备许多强大的功能,例如智能提示、插件商店、集成Git等等,但除此之外还有一个被许多开发者忽略的功能——运行和调试(Run and Debug)。
科技新语
2022/05/07
9640
Typescript配合React实践
使用ts写React代码写了将近三个月,从刚开始觉得特别垃圾到现在觉得没有ts不行的一些实践以及思考。如果按部就班的写React就体会不到使用ts的乐趣,如果多对代码进行优化,进行重构,在业务中实践比较好的一些方案就会体会到ts真正的乐趣,但是ts也在过程中给我带来了痛苦,在本文的最后会具体展开一下。
前端迷
2019/07/27
9860
【个人笔记】2023年搭建基于webpack5与typescript的react项目
由于我在另外的一些文章所讨论或分析的内容可能基于一个已经初始化好的项目,为了避免每一个文章都重复的描述如何搭建项目,我在本文会统一记录下来,今后相关的文章直接引用文本,方便读者阅读。此文主要为个人笔记,不会有太多的关于思路的描述;另外,本文仅仅描述如何搭建基础react项目,不涉及图片等资源的加载,关于图片等资源的处理,我会单独编写一期。
w4ngzhen
2023/10/17
4280
【个人笔记】2023年搭建基于webpack5与typescript的react项目
VsCode 各场景高级调试技巧,有用!
VsCode自从诞生以来,以其各自优异的特性迅速走红。尤其是对于前端开发小伙伴来说,几乎成为必不可少的开发工具。所以,熟练掌握VsCode的各自使用技巧与调试技巧会让你的日常开发工作效率倍增。本文将会以大量图文的方式,从下面几个方面详细介绍VsCode的各种技巧:
@超人
2022/04/14
1.3K0
VsCode 各场景高级调试技巧,有用!
使用Yarn workspace,TypeScript,esbuild,React和Express构建 K8S 云原生应用(一)
本文将指导您使用 K8S ,Docker,Yarn workspace ,TypeScript,esbuild,Express 和 React 来设置构建一个基本的云原生 Web 应用程序。在本教程的最后,您将拥有一个可完全构建和部署在 K8S 上的 Web 应用程序。
为少
2021/05/27
4.3K1
VSCode Vue 调试
以下操作和设置,在由 vue-cli 4 创建的 vue2/js 项目下进行,应该也适用于 vue-cli 4 下创建的其它类型项目,没有进一步尝试。
jgrass
2024/12/25
1570
VSCode Vue 调试
「使用 webpack5从0到1搭建React+TypeScript 项目环境」1. React 与 TypeScript 集成
本篇文章会带大家使用 webpack 5集成 React 与TypeScript,同时为了提高我们的代码质量,我们会在构建中添加类型检查和代码规范校验。
用户8921923
2022/10/24
2.2K0
「使用 webpack5从0到1搭建React+TypeScript 项目环境」1. React 与 TypeScript 集成
VS Code 调试完全攻略(5):基于浏览器的 React 应用
这次我们来研究怎样把调试器连接到用 Create React App 生成的 React 程序。你将看到如何从 VS Code 启动浏览器并检查远程异步 API 调用。它超级强大,同时又很容易,所以在调试 CRA 和 React 程序时没有理由不这样做。
疯狂的技术宅
2020/06/04
2.6K0
React源码学习进阶篇(一)新版React如何调试源码?
我们先启用VSCode的调试模式,在项目下新建一个launch.json(注意我这里cra启动的端口是3001):
孟健
2022/12/19
1.1K0
React源码学习进阶篇(一)新版React如何调试源码?
【调试】258- 前端调试各种收集-断点篇
当我第一次知道这种东西,我也惊呆了,居然还有这种操作,实在强大到没朋友,从此爱上调试,按时下班。
pingan8787
2019/07/25
2.5K0
【调试】258- 前端调试各种收集-断点篇
ASP.NET Core知多少(6):VS Code联调Angular + .NetCore
1. 引言 最近在看《程序员的成长课》,讲到程序员如何构建技能树,印象深刻。作为一名后台开发的程序员,深感技能单一,就别说技能树了。作为一名合格的后台程序员,至少要掌握一门静态语言,一门动态语言和一门前端语言。静态语言C#算不上精通,动态语言Python也刚刚入门。但前端却是空白,虽说有了解过jquery、bootstrap,但因为项目无所涉及,早已忘得一干二净。 近几年,前端框架大行其道,Web开发已经是一个不容忽视的大趋势,在这个趋势下对前端框架一无所知,显然是要淘汰的。所以决定拾起前端,选择学习Ang
圣杰
2018/03/28
1.8K0
ASP.NET Core知多少(6):VS Code联调Angular + .NetCore
NestJS 7.x 折腾记: (0) 起手式-> VS Code 1.5+ Debug NestJS
Ctrl(CMD)+Shift+P --> Debug: Toggle Auto Attach
CRPER
2022/03/08
1.7K0
NestJS 7.x 折腾记: (0) 起手式-> VS Code 1.5+ Debug NestJS
vscode调试配置
{ "version": "0.2.0", "configurations": [ { "command": "npm run dev", "name": "dev", "request": "launch", "type": "node-terminal" }, { "command": "npm run build",
蓓蕾心晴
2022/07/06
1.4K0
node系列:学会node调试
首先在需要在文件行数右侧点击打上断点(红色圆),然后点击下图绿色启动按钮即可开始调试,代码自动运行到断点所在行,此时鼠标移入变量可以看到每个变量的当前状态
落落落洛克
2021/01/08
4.2K0
node系列:学会node调试
使用VS Code开发asp.net core (下)
本文是基于Windows10的. Debugging javascript 打开wwwroot/js/site.js, 写一段简单的js代码: (function ($) { $(docume
solenovex
2018/03/01
1.8K0
使用VS Code开发asp.net core (下)
相关推荐
VS Code 调试完全攻略(3):编辑变量并重新执行函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验