为了更好地学习React,也为了更好地应对前端面试,最近在尝试调试React源码。果不其然,天下的事情都是一样难做,遇到了两三个坑,花费了不少时间解决。记录下来,希望宝子们少走些弯路。
问题归纳
- node版本问题
- Java版本问题
首先,按照网上调试React源码教程执行下面步骤:
1、先把代码拉下来
// 克隆 react 源码
git clone git@github.com:facebook/react.git
2、安装依赖
// 切到react源码所在文件夹
cd react
// 安装依赖
yarn
坑一出现:很简单,node版本问题
解决方法:安装符合项目需要的
node版本(>=14.18.0),后来执行yarn又报node版本错误,按照要求安装符合的版本即可。
3、执行打包
yarn build react/index,react/jsx,react-dom/index,scheduler --type=NODE
坑二出现:balabala……,Unable to locate Java Runtime。猜测和java有关,发现电脑没有安装Java。
找了个Java 8安装,Java 8安装完,再次打包react,产生新问题。
坑三出现:balabala……55.0……balabala……52.0
报错的原因是由于编译这份java代码的版本和当前用于运行的java版本并不一致。并且编译的版本仅支持52.0或以上的运行版本。所以是说,当前用于运行的java版本低于52.0。
查询主要版本号与JAVA版本的映射关系,55 = Java 11,52 = Java 8。奥安装Java 11版本。
解决方法:通过Aracle官网,尝试安装Java 11版本。安装成功:
再次执行打包命令 yarn build react/index,react/jsx,react-dom/index,scheduler --type=NODE ,成功并且输出bundle文件😊
后面继续按照网上调试React源码教程继续吧😁
PS:查java版本
// 查看jre(运行环境)版本
java -version
// 查看jdk(编译环境)版本
javac -version
如果有错误的话欢迎大家帮忙指正嗷!!!谢谢大家~~~