react19.0.0 仓库安装
克隆仓库到本地:
git clone https://github.com/facebook/react.git
在项目下有个 .nvmrc 文件,指定了 node 版本为 18.20.0
安装 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,gifsicle,19.0,仓库,安装,yarn,react,autoreconf,com
From: https://www.cnblogs.com/bibiafa/p/18212623