申明:本文所有操作均参考React的官方文档,结合自己的调试思路,梳理的文档。
当前react版本为17.0.3,原官方文档链接~~ zh-hans.reactjs.org/docs/how-to…~~
通过下载react源码,是不可以直接进行react的源码调试。需要对源码进行打包,生成react、react-dom打包后的代码,然后在自己creat-react-app创建的项目中link到打包后的react、react-dom文件。那么在your app中使用的react、react-dom,就是react源码打包后的文件。
但是,打包后的文件依然保留着源码中的方法名,我们可以先阅读源码,如果想要在源码中需要对某个方法进行打断点,可以在打包后的代码中搜索该方法,然后进行断点调试。
-
安装Nodev8.0.0+,Yarn v1.2.0+,JDK
yarn可以使用 npm yarn -g 全局安装,JDK可以去官网下载JDK安装包并自行安装。 -
git clone https://github.com/facebook/react.git
下载react项目到本地。 -
打包react项目
cd ~/path_to_your_react_clone/
// 进入到你本地react源码项目中yarn build react/index,react/jsx,react-dom/index,scheduler --type=NODE
// 打包react项目 -
进入到build目录中,使用
yarn link
将react,react-dom指向本地文件夹的build
目录。cd build/node_modules/react
yarn link
cd build/node_modules/react-dom
yarn link
-
进入到你create-react-app创建的项目,将项目中使用的react、react-dom link到本地的build目录。
yarn link react react-dom
** 需要注意的是,每次打完断点,都需要yarn start你创建的项目,断点才会生效。
接下来我们就开始尝试一下吧 =。=
在react打包后源码中加上一行日志
重新启动项目后,就可以在浏览器中生效了~
接下来,就可以开始我们的调试之旅了。