react19.0.0 仓库安装
克隆仓库到本地:
git clone https://github.com/facebook/react.git
ReactVersions 中可以看到当前版本为 19.0.0
在项目下有个 .nvmrc 文件,指定了 node 版本为 18.20.0 (react18.3.1 配套的 node 版本为 14.17.6 这跨度有点大啊)
安装 node 18.20.0 nvm install 18.20.0
安装完成后切换 node 版本 nvm use
,该命令会根据 .nvmrc 的配置切换到 node 18.20.0
package.json 中指定了包管理器是 [email protected]
安装 [email protected]npm i [email protected] --global
yarn 安装完成后,设置国内镜像源 yarn config set registry https://registry.npmmirror.com
准备工作完成,开始安装依赖 yarn install
安装后会报错:
error /Users/pmx/Sites/Commonfiles/Github/react/node_modules/gifsicle: Command failed.
Exit code: 1
Command: node lib/install.js
Arguments:
Directory: /Users/pmx/Sites/Commonfiles/Github/react/node_modules/gifsicle
Output:
⚠ connect ECONNREFUSED 0.0.0.0:443
⚠ gifsicle pre-build test failed
ℹ compiling from source
✖ Error: Command failed: /bin/sh -c autoreconf -ivf
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
Can't exec "aclocal": No such file or directory at /opt/homebrew/Cellar/autoconf/2.72/share/autoconf/Autom4te/FileUtils.pm line 299.
autoreconf: error: aclocal failed with exit status: 2
这个错误是安装完成后报的,因为 package.json 中配置了 postinstall 指令,安装完成后会执行该指令。
报错是 gifsicle 中抛出的,查看 gifsicle 代码
gifsicle/lib/install.js
try {
await bin.run(['--version']);
} catch (error) {
log.warn('gifsicle pre-build test failed');
}
继续查看 gifsicle/lib/index.js
const url = `https://raw.githubusercontent.com/imagemin/gifsicle-bin/v${pkg.version}/vendor/`;
定位到问题,因为 raw.githubusercontent.com 在国内是被墙了的,所以我的处理方式是配置本地 DNS
首先查看 raw.githubusercontent.com 可解析的 IP 地址
工具:https://ping.chinaz.com/https://raw.githubusercontent.com
选择 ping 通的 IP 地址,配置到 hosts 中
sudo vim /etc/hosts
写入
185.199.110.133 raw.githubusercontent.com
hosts 配置完成后,重启电脑即可生效。如果不想重启电脑,需要手动清除 DNS 缓存 + 重启网络服务
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
注意 Mac 版本不同,指令也会有区别
删除 node_modules 重新安装
[4/4]
标签:node,yarn,仓库,react19.0,autoreconf,gifsicle,com,安装
From: https://www.cnblogs.com/bibiafa/p/18212726