github: facebook/react
最新的 tag 為 17.0.2
1. 準(zhǔn)備 React 源碼(ReactProject)
安裝 node v14.18.1
$ nvm use v14.18.1
$ nvm alias default v14.18.1
全局安裝 yarn,并設(shè)置 registry 為 taobao 鏡像地址
$ npm i -g yarn
# 會(huì)修改 ~/.yarnrc
$ yarn config set registry https://registry.npm.taobao.org
克隆代碼(并切換到 tag v17.0.2)
$ git clone https://github.com/facebook/react.git
$ git checkout v17.0.2
安裝依賴
$ yarn
2. 創(chuàng)建測(cè)試工程(ExampleProject)
設(shè)置 registry 為 taobao 鏡像地址
# 會(huì)修改 ~/.npmrc
$ npm config set registry https://registry.npm.taobao.org
安裝 create-react-app,并初始化一個(gè) React 項(xiàng)目(我們這里起名為 test-react)
$ npm i -g create-react-app
# 會(huì)自動(dòng)安裝依賴
$ create-react-app test-react
運(yùn)行項(xiàng)目
# 會(huì)自動(dòng)打開 http://localhost:3000/
$ npm start
3. 運(yùn)行
目前還沒(méi)有直接調(diào)試 React 源碼的辦法,只能調(diào)試編譯后的代碼
參考 Question: Building react with sourcemaps
設(shè)置環(huán)境變量 ~/.zshrc(便于以后命令行處理)
# 需要結(jié)合實(shí)際情況進(jìn)行修改
# React 源碼目錄
export ReactProject=/Users/.../react
# 使用 React 的項(xiàng)目目錄
export ExampleProject=/Users/.../test-react
跳轉(zhuǎn)到源碼目錄,構(gòu)建 react 項(xiàng)目(watch 模式),
$ cd $ReactProject
$ yarn build
創(chuàng)建符號(hào)鏈接,將 react 和 react-dom 的依賴指向 react 源碼的構(gòu)建產(chǎn)物,然后再啟動(dòng),
$ cd $ExampleProject
$ ln -s $ReactProject/build/node_modules/react $ExampleProject/node_modules/react
$ ln -s $ReactProject/build/node_modules/react-dom $ExampleProject/node_modules/react-dom
$ yarn start
參考
github: nvm
github: facebook/react v17.0.2
yarn config
Question: Building react with sourcemaps