怎么调试React源码?多种工具下的调试方法介绍

怎么调试react源码?下面本篇文章带大家聊聊多种工具下的调试react源码的方法,介绍一下在贡献者、create-react-app、vite项目中如何debugger react的真实源码,希望对大家有所帮助!

clone React

将Reactclone到本地,并安装依赖.

git clone https://github.com/facebook/react.git

编译项目

如果只是通过简单的yarn build,并不会生成sourcemap, 这不是我们想要的,我们需要编译出现代编辑器所需的sourcemap进行映射到实际源码进行调试。

当前react项目并无法通过简单增加参数生成sourcemap,我们需要修改scripts/rollup/build.js下的部分配置 【推荐学习:vscode教程、编程教学】

①: 修改 sourcemap 为 true怎么调试React源码?多种工具下的调试方法介绍②:注释部分无法生成sourcemap的插件

怎么调试React源码?多种工具下的调试方法介绍怎么调试React源码?多种工具下的调试方法介绍怎么调试React源码?多种工具下的调试方法介绍ok,看起来很多,但其实大致都连在一起(353-355, 387-415), 注释掉了几个插件,此时我们可以进行build了

yarn build

注意: 如果build失败,提示你需要安装jdk,根据报错安装即可。

成功效果如下:

怎么调试React源码?多种工具下的调试方法介绍

进行debugger

我们根据官方文档得知基础开发文件目录在 /fixtures/packaging/babel-standalone/dev.html中,于是我们根据该html先进行简单的debug配置。

vscode

1、创建一个launch.json怎么调试React源码?多种工具下的调试方法介绍

2、修改launch.json配置

{  // 使用 IntelliSense 了解相关属性。   // 悬停以查看现有属性的描述。  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387  "version": "0.2.0",  "configurations": [    {      "type": "chrome",      "request": "launch",      "name": "Open dev.html",      // 这里路径可能不一样 做统一调整 修改为如下      "file": "${workspaceFolder}/fixtures/packaging/babel-standalone/dev.html"    }  ]}

然后在源码打上断点,点击打开debug即可看到运行到源码成功.

注意:此时我们已经有了sourcemap,直接在/packages/react-dom或者/packages/react会运行到代码打上断点

怎么调试React源码?多种工具下的调试方法介绍

webstrom

webstrom的十分简单,在dev.html右键进行调试dev.html即可:怎么调试React源码?多种工具下的调试方法介绍

如上面的案例已经满足你的大部分的源码调试需求,并且我们也可以通过增加一些组件或者hook来进行调试:

怎么调试React源码?多种工具下的调试方法介绍

如果你实在想在真实项目中进行源码阅读,可以继续往下阅读。

在create-react-app中debug

我们平时大多都基于create-react-app或者vite来运行项目,我们可以通过npm link来进行对源码的链接。

上面的案例适合react开发者使用并且已经满足你的小部分需求,但是我们平时大多都基于create-react-app或者vite来运行项目,我们可以通过npm link来链接一下即可。

①: 创建一个create-react-app项目

白瓜面试 白瓜面试

白瓜面试 – AI面试助手,辅助笔试面试神器

白瓜面试 40 查看详情 白瓜面试

②: 在React项目中将 react,react-dom链接到全局.

注意: 需要根据你实际当前处于的位置去执行,总而言之就是到build/node_modules/reactbuild/node_modules/react-dom分别执行npm link就行啦.

cd build/node_modules/react && npm link

如下就成功了一个:怎么调试React源码?多种工具下的调试方法介绍

再把react-dom也link吧.

cd .. && cd react-dom && npm link

怎么调试React源码?多种工具下的调试方法介绍

③: 在create-react-app的项目中link react与react-dom

 npm link react react-dom

大功小成,接下来开始正式的debugger.

vscode如何debugger

官方已经给出部分文档, 参考文档: 文档

先启动项目 yarn start增加launch.json配置:  文档

怎么调试React源码?多种工具下的调试方法介绍

注意:
1、如果你项目端口进行了修改,需要把上方的端口也做修改.
2、官方提供的是edge浏览器,如果你想改谷歌浏览器只需要把type修改为chrome

笔者的配置如下:

{  "version": "0.2.0",  "configurations": [    {      "type": "chrome",      "request": "launch",      "name": "调试creat-react-app源码",      "url": "http://localhost:3000",      "webRoot": "${workspaceFolder}"    }  ]}

找个位置打上断点进行调试怎么调试React源码?多种工具下的调试方法介绍③、④为我打上断点的位置,点击 ⑤ 即可看到进入源码啦(可能要多点几下)怎么调试React源码?多种工具下的调试方法介绍

至此:我们已经大功告成,可以进行源码调试。

webstrom如何debugger

webstorm就显得十分简单,参考官方文档: 文档

打上断点启动项目 yarn start使用按键打开调试面板, 文档怎么调试React源码?多种工具下的调试方法介绍

调试React vite项目

和上方一致,也是通过link

总结:

调试源码的逻辑核心在于sourcemap,但是我们不难发现其中存在一些问题:

1、当前我们跨项目进行调试(源码在react项目中,我们的项目在另外一个文件中),导致类型管理出现问题, 这是基于开发项目的定义管理,不同编辑器表现不同.

vscode怎么调试React源码?多种工具下的调试方法介绍这是因为vscode默认解析ts的,但是不会默认识别flow的语法,所以这种的代码会解析成ts语法,就会报错,我们在项目增加 .vscode/settings.json 增加配置:

{  "javascript.validate.enable": false}

即表现正常,不再报错:怎么调试React源码?多种工具下的调试方法介绍

webstorm

webstrom则是无法找到定义怎么调试React源码?多种工具下的调试方法介绍

更多关于VSCode的相关知识,请访问:vscode基础教程!

以上就是怎么调试React源码?多种工具下的调试方法介绍的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
win7桌面背景变成白色 win7桌面背景变白恢复方法
上一篇 2025年11月8日 20:09:35
win8电脑设置打不开怎么办 win8设置打不开修复
下一篇 2025年11月8日 20:09:46

相关推荐

  • HTML文档如何工作?如何编辑HTML格式文件?

    HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?HTML文档如何工作?如何编辑HTML格式文件?

    浏览器解析和渲染html的过程包括:1. 解析html构建dom树;2. 结合css构建渲染树;3. 布局计算元素位置;4. 绘制像素到屏幕。编辑html可使用记事本、vs code、sublime text等文本或代码编辑器,其中vs code因语法高亮、自动补全和插件生态成为主流选择。标准htm…

    2026年5月10日 用户投稿
    000
  • XML格式美化有哪些工具?

    XML美化工具按使用场景分为在线工具、IDE插件、桌面GUI工具和命令行工具,选择应基于文件大小、使用频率、功能需求及团队规范。在线工具如XMLGrid.net适合临时小文件处理;VS Code、IntelliJ IDEA等IDE配合插件可实现高效开发与自动格式化;Notepad++(配XML To…

    2026年5月10日
    100
  • webstorm怎么运行调试html_webstorm调试运行html方法【教程】

    WebStorm通过内置服务器和浏览器配合实现HTML预览与调试。1. 右键HTML文件选择Open in Browser,自动启动本地服务器并预览;2. 启用Live Edit功能需安装JetBrains插件,点击Debug图标实现实时编辑更新;3. 在JS代码行设断点,通过Debug模式运行可暂…

    2026年5月10日
    000
  • WebStorm如何实现HTML标签换行而属性保持单行?

    webstorm代码格式化:html标签换行,属性单行显示 提升代码可读性和维护性,合理的代码格式化至关重要。本文介绍如何在WebStorm中实现HTML标签换行,同时保持属性单行的代码格式化效果。 假设我们需要格式化如下代码: 目标是将标签换行,但src和alt属性保持在同一行。 立即学习“前端免…

    2026年5月10日
    000
  • 如何创建HTML文件?用什么软件打开HTML格式?

    如何创建HTML文件?用什么软件打开HTML格式?如何创建HTML文件?用什么软件打开HTML格式?如何创建HTML文件?用什么软件打开HTML格式?如何创建HTML文件?用什么软件打开HTML格式?

    创建html文件需用纯文本编辑器编写符合规范的代码并保存为.html或.htm扩展名;2. 打开html文件可用任何现代浏览器直接渲染;3. 基本结构包括声明、根元素、 元数据区和内容区;4. 常见问题如文件扩展名错误、字符编码不匹配、路径错误、语法错误等可通过检查文件名、统一使用utf-8编码、验…

    2026年5月10日 用户投稿
    000
  • WebStorm 代码格式化:如何让标签换行,属性不换行?

    如何让 webstorm 格式化代码时实现标签都换行,而标签的属性都不换行? 为了让 WebStorm 格式化代码时实现标签换行而属性不换行,请按照以下步骤操作: 首先,在使用了标签后进行换行,如下所示: 标签换行: 接下来,选择 “Do not wrap” 选项。这将阻止属…

    2026年5月10日
    000
  • React中跨组件分发状态的三种方法介绍

    这篇文章给大家介绍的内容是关于react中跨组件分发状态的三种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 当我问自己第一百次时,我正在研究一个典型的CRUD屏幕:“我应该将状态保留在这个组件中还是将其移动到父组件?”。 如果需要对子组件的状态进行轻微控制。您可能也遇到了…

    2026年5月10日
    000
  • HTML文档的语义化标签是什么?如何编辑HTML文件?

    HTML文档的语义化标签是什么?如何编辑HTML文件?HTML文档的语义化标签是什么?如何编辑HTML文件?HTML文档的语义化标签是什么?如何编辑HTML文件?HTML文档的语义化标签是什么?如何编辑HTML文件?

    html语义化标签的核心在于赋予内容明确含义,提升可访问性、seo和代码可维护性;1. 使用结构性标签如 、 、、 、 、 、 构建清晰页面骨架;2. 运用文本语义标签如、、、、 与精准表达文本含义;3. 避免将 与 混淆, 需有主题和标题;4. 区分 (独立内容)与 (主题分组)的使用场景;5. …

    2026年5月10日 用户投稿
    000
  • 如何解决团队协作时HTML合并冲突的详细步骤

    答案是通过理解Git冲突原因、使用编辑器工具处理冲突块、验证HTML完整性并提交解决结果,可有效应对团队协作中的HTML合并冲突。具体包括:1. 明确冲突因多分支修改同一代码行导致;2. 利用VS Code等工具对比并整合“HEAD”与“传入更改”;3. 合并class等属性并确保标签闭合;4. 用…

    2026年5月10日
    000
  • typescript零基础学习教程

    TypeScript是一种添加类型检查功能的JavaScript超集语言,可提高代码质量和开发效率。它提供类型检查、代码重构和IDE支持等优势。学习TypeScript的步骤包括:安装TypeScript、创建项目、编写代码、编译代码和运行结果。 TypeScript 零基础学习教程 什么是 Typ…

    2026年5月10日
    000
  • react中使用css的七种方法介绍(附代码)

    本篇文章给大家带来的内容是关于react中使用css的七种方法介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 第一种: 在组件中直接使用style 不需要组件从外部引入css文件,直接在组件中书写。 import React, { Component } from “…

    2025年12月24日
    000
  • 彻底理解CSS中视觉格式化模型(附示例)

    本篇文章给大家带来的内容是关于彻底理解css中视觉格式化模型(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 不论你在什么时候开始,重要的是开始之后不要停止。 前言 对于部分前端工程师来讲,有时候CSS令他们很头疼,明明设置了某个样式,但是布局就是不起作用。 如果你也有这种…

    2025年12月24日
    000
  • CSS中display: inline-block的用法解析

    本篇文章给大家带来的内容是关于css中display: inline-block的用法解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 迷之间隙 我们创建一个导航列表,并将其列表 item 设置为 inline-block,主要代码如下: 我 我 我.nav { backgrou…

    2025年12月24日
    000
  • 如何快速打出html5_快速输入HTML5代码方法及快捷键技巧【详解】

    可借助编辑器HTML5模板、Emmet语法、自定义代码片段、自动闭合补全及多光标编辑五种方法快速输入HTML5代码:一、用“!”+Tab等触发内置HTML5骨架;二、用Emmet缩写如“main>section3”生成语义结构;三、配置如“vid5”等自定义片段一键插入video等高频结构;四…

    2025年12月23日
    000
  • webstorm 如何创建html5_WebStorm创建HTML5项目步骤与配置【指南】

    在 WebStorm 中新建 HTML5 项目需四步:一、创建空项目后新建 HTML 文件,自动生成 HTML5 声明;二、设置 HTML 版本为 HTML5;三、配置外部 XHTML Schema 启用语义标签支持;四、启用内置服务器实现实时预览。 如果您希望在 WebStorm 中新建一个标准的…

    2025年12月23日
    000
  • 如何添加html文档_创建并添加新的HTML文档到项目【创建】

    必须先创建HTML文件并正确放置在项目目录中,具体包括:一、用文本编辑器新建并保存为UTF-8编码的HTML文件;二、通过IDE右键菜单创建带默认结构的HTML文件;三、用命令行在目标目录生成空HTML文件;四、通过系统文件管理器新建文本文档并重命名为HTML文件。 如果您需要在项目中添加新的HTM…

    2025年12月23日
    000
  • 如何建立html文件_html文件建立步骤【方法】

    创建HTML文件有四种方法:一、用文本编辑器新建并保存为.html后缀,注意编码选UTF-8;二、命令行执行echo命令生成;三、IDE如VS Code用Emmet快捷生成标准模板;四、浏览器开发者工具编辑后复制导出。 如果您希望创建一个基础的 HTML 文件用于网页展示或学习目的,则需要按照标准的…

    2025年12月23日
    000
  • html开头如何一键敲_快速生成HTML文档开头代码【生成】

    可使用VS Code输入html后按Tab、Sublime Text输入!后按Tab、WebStorm输入html5后按Tab、Notepad++录制宏或在线工具预存代码等方式一键生成HTML5文档开头结构。 如果您在编写HTML文件时希望快速输入标准的HTML文档开头结构,可以使用多种编辑器内置功…

    2025年12月23日
    000
  • html网页完整框架代码怎么运行_运行html完整框架代码法【教程】

    首先编写包含DOCTYPE、html、head和body的标准HTML5代码,然后将代码保存为index.html文件,注意选择“所有文件”类型避免生成.txt文件,接着双击该文件或右键用浏览器打开即可查看网页内容,推荐使用VS Code等编辑器配合Live Server插件实现自动刷新预览,从而提…

    2025年12月23日
    000
  • webstorm怎么运行html_webstorm运行html方法【教程】

    WebStorm中运行HTML文件可通过四种方式实现:1. 使用内置服务器预览,右键HTML文件选择Open in Browser,通过localhost地址在浏览器打开,适合静态调试;2. 在Settings中配置默认浏览器,设置后优先使用指定浏览器打开;3. 安装Live Server类插件,支…

    2025年12月23日
    000

发表回复

登录后才能评论
关注微信