拉取源代码
到react仓库拉取代码
- 可以下载zip然后用IDE打开
- 也可以执行 git command 👇
git clone https://github.com/facebook/react.git
然后用你喜欢的IDE打开,我是直接在vscode中执行 git clone (Ctrl + P 打开命令面板)👇
这样可以省一点时间打开文件夹hhhhh~
下载依赖
Node的版本强烈建议 v18.20.1 及以上(因为我看到仓库里面有
.nvmrc
文件),用NVM管理Node版本更佳!!!
这个链接是一篇安装nvm的guide(写的很好!!!) www.freecodecamp.org/news/node-v…
建议跟着React的官方文档的命令来构建(旧文档),但是我真的想不通的一点是 新的React官方文档 竟然没有旧文档的 Development Workflow(开发流程),是我没找到嘛,求大佬们告知在哪里!!!
好啦,回归主题。按照 Development Workflow
流程来,先用 yarn
下载所有依赖。
构建产物(有大坑!!!)
按照流程来,接着就是执行 yarn build
构建,但是这是构建所有产物(cjs、esm、umd、server、profiling等文件),而且构建的等待时间巨TM久!!,所以我们可以指定构建的产物类型(umd),还可以指定只有哪些包参与(得益于monorepo架构)构建👇
yarn build react/index,react-dom/index --type=UMD
上面的命令代表只构建 react
和react-dom
这两个包,并且产物的类型是UMD格式
文档里面也详细说了👇
按照红框里的文字说法就是运行命令后,直接运行
fixtures/packaging/babel-standalone/dev.html
文件。
就在执行这个命令后,发现build文件夹里面没有任何umd格式的文件👇
然后我去调试构建脚本,发现根本就没有 umd 格式的参数👇
然后我就去issue看了看,果然发现了原因!!👇
构建umd产物的代码都被这位大佬删掉了,具体原因的话大家可以去看看issue
社区里面提倡演示demo的话 用 esm.sh 网站的包来演示,不要使用umd了。👇
为了省点事,我没有直接引用 esm.sh 上的包,我直接把仓库的历史记录回退到删掉umd之前的最新一个提交👇
对应的git命令
git checkout -b debug-react 0c245df
接着我们再来一次运行
yarn build react/index,react-dom/index --type=UMD
我们就可以看到build中有umd格式的文件了👇
运行
最后我们用 live server
运行 dev.html
,但是记得改下html文件里面的React的渲染方法,现在我们得产物是React18及以上的
运行过后就可以看到👇
end
好啦,以上就是我自己的调试React的源码的准备工作