如何使用多种工具调试React源码?

2026-03-27 01:121阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1779个文字,预计阅读时间需要8分钟。

如何使用多种工具调试React源码?

如何调试React源码?以下章节将带大家聊聊多种工具下的调试React源码的方法,介绍在贡献者、create-react-app、Vite项目中如何debugger React的真实源码,希望对大家有所帮助!

克隆React源码到本地,并配置调试环境:

1. 克隆React源码: git clone https://github.com/facebook/react.git cd react

2. 安装依赖: npm install

3. 启动调试服务器: npm run debug

在贡献者、create-react-app、Vite项目中调试React源码:

1. 贡献者项目: 在贡献者项目中,通常需要先安装相应的依赖,然后使用IDE(如VS Code)打开项目,并配置调试环境。以下是在VS Code中调试React源码的步骤:

- 打开VS Code,选择文件>打开文件夹,选择克隆的React源码文件夹。 - 安装相应的调试插件,如Chrome Debug。 - 在VS Code中打开运行和调试面板,选择添加配置。 - 添加一个配置文件,如launch.json,配置调试选项: json { version: 0.2.0, configurations: [ { type: chrome, request: launch, name: React Debug, url: http://localhost:3000, webRoot: ${workspaceFolder} } ] } - 运行配置,启动调试服务器。

2. create-react-app项目: 在create-react-app项目中,可以使用React DevTools进行调试。以下是使用React DevTools调试的步骤:

- 安装React DevTools: npm install --save-dev react-devtools - 在package.json中添加启动命令: json scripts: { start: react-scripts start, debug: react-scripts start --inspect } - 启动调试服务器: npm run debug - 打开Chrome浏览器,访问`chrome://inspect`,选择Open dedicated DevTools for Node,然后选择启动的React应用。

如何使用多种工具调试React源码?

3. Vite项目: 在Vite项目中,可以使用Vite提供的调试功能。以下是使用Vite调试的步骤:

- 安装Vite: npm install vite --save-dev - 在package.json中添加启动命令: json scripts: { dev: vite, build: vite build, serve: vite preview } - 启动调试服务器: npm run dev - 打开Chrome浏览器,访问`chrome://inspect`,选择Open dedicated DevTools for Node,然后选择启动的React应用。

希望以上信息对大家有所帮助!

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

clone React

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

git clone github.com/facebook/react.git编译项目

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

当前react项目并无法通过简单增加参数生成sourcemap,我们需要修改scripts/rollup/build.js下的部分配置

①: 修改 sourcemap 为 true②:注释部分无法生成sourcemap的插件

ok,看起来很多,但其实大致都连在一起(353-355, 387-415), 注释掉了几个插件,此时我们可以进行build了

yarn build

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

成功效果如下:

进行debugger

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

vscode

1、创建一个launch.json

2、修改launch.json配置

{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: 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会运行到代码打上断点

webstrom

webstrom的十分简单,在dev.html右键进行调试dev.html即可:

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

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

在create-react-app中debug

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

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

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

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

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

cd build/node_modules/react && npm link

如下就成功了一个:

再把react-dom也link吧.

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

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

npm link react react-dom

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

vscode如何debugger

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

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

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

笔者的配置如下:

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

  • 找个位置打上断点进行调试③、④为我打上断点的位置,点击 ⑤ 即可看到进入源码啦(可能要多点几下)

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

webstrom如何debugger

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

  • 打上断点
  • 启动项目 yarn start
  • 使用按键打开调试面板, 文档
调试React vite项目

和上方一致,也是通过link

总结:

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

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

  • vscode这是因为vscode默认解析ts的,但是不会默认识别flow的语法,所以这种的代码会解析成ts语法,就会报错,我们在项目增加 .vscode/settings.json 增加配置:

{ "javascript.validate.enable": false }

即表现正常,不再报错:

  • webstorm

webstrom则是无法找到定义

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

标签:方法

本文共计1779个文字,预计阅读时间需要8分钟。

如何使用多种工具调试React源码?

如何调试React源码?以下章节将带大家聊聊多种工具下的调试React源码的方法,介绍在贡献者、create-react-app、Vite项目中如何debugger React的真实源码,希望对大家有所帮助!

克隆React源码到本地,并配置调试环境:

1. 克隆React源码: git clone https://github.com/facebook/react.git cd react

2. 安装依赖: npm install

3. 启动调试服务器: npm run debug

在贡献者、create-react-app、Vite项目中调试React源码:

1. 贡献者项目: 在贡献者项目中,通常需要先安装相应的依赖,然后使用IDE(如VS Code)打开项目,并配置调试环境。以下是在VS Code中调试React源码的步骤:

- 打开VS Code,选择文件>打开文件夹,选择克隆的React源码文件夹。 - 安装相应的调试插件,如Chrome Debug。 - 在VS Code中打开运行和调试面板,选择添加配置。 - 添加一个配置文件,如launch.json,配置调试选项: json { version: 0.2.0, configurations: [ { type: chrome, request: launch, name: React Debug, url: http://localhost:3000, webRoot: ${workspaceFolder} } ] } - 运行配置,启动调试服务器。

2. create-react-app项目: 在create-react-app项目中,可以使用React DevTools进行调试。以下是使用React DevTools调试的步骤:

- 安装React DevTools: npm install --save-dev react-devtools - 在package.json中添加启动命令: json scripts: { start: react-scripts start, debug: react-scripts start --inspect } - 启动调试服务器: npm run debug - 打开Chrome浏览器,访问`chrome://inspect`,选择Open dedicated DevTools for Node,然后选择启动的React应用。

如何使用多种工具调试React源码?

3. Vite项目: 在Vite项目中,可以使用Vite提供的调试功能。以下是使用Vite调试的步骤:

- 安装Vite: npm install vite --save-dev - 在package.json中添加启动命令: json scripts: { dev: vite, build: vite build, serve: vite preview } - 启动调试服务器: npm run dev - 打开Chrome浏览器,访问`chrome://inspect`,选择Open dedicated DevTools for Node,然后选择启动的React应用。

希望以上信息对大家有所帮助!

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

clone React

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

git clone github.com/facebook/react.git编译项目

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

当前react项目并无法通过简单增加参数生成sourcemap,我们需要修改scripts/rollup/build.js下的部分配置

①: 修改 sourcemap 为 true②:注释部分无法生成sourcemap的插件

ok,看起来很多,但其实大致都连在一起(353-355, 387-415), 注释掉了几个插件,此时我们可以进行build了

yarn build

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

成功效果如下:

进行debugger

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

vscode

1、创建一个launch.json

2、修改launch.json配置

{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: 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会运行到代码打上断点

webstrom

webstrom的十分简单,在dev.html右键进行调试dev.html即可:

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

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

在create-react-app中debug

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

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

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

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

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

cd build/node_modules/react && npm link

如下就成功了一个:

再把react-dom也link吧.

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

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

npm link react react-dom

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

vscode如何debugger

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

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

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

笔者的配置如下:

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

  • 找个位置打上断点进行调试③、④为我打上断点的位置,点击 ⑤ 即可看到进入源码啦(可能要多点几下)

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

webstrom如何debugger

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

  • 打上断点
  • 启动项目 yarn start
  • 使用按键打开调试面板, 文档
调试React vite项目

和上方一致,也是通过link

总结:

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

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

  • vscode这是因为vscode默认解析ts的,但是不会默认识别flow的语法,所以这种的代码会解析成ts语法,就会报错,我们在项目增加 .vscode/settings.json 增加配置:

{ "javascript.validate.enable": false }

即表现正常,不再报错:

  • webstorm

webstrom则是无法找到定义

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

标签:方法