Mac OS下执行npm start报错:dyld依赖库未加载
Node.js因icu4c库版本不兼容无法运行的解决方法
问题场景
更新Homebrew软件包并执行brew cleanup后,Node.js项目无法正常启动,执行npm start或npm -V时抛出库加载错误:
dyld[1101]: Library not loaded: /opt/homebrew/opt/icu4c/lib/libicui18n.70.dylib Referenced from: /opt/homebrew/Cellar/node/18.6.0/bin/node Reason: tried: '/opt/homebrew/opt/icu4c/lib/libicui18n.70.dylib' (no such file), '/usr/local/lib/libicui18n.70.dylib' (no such file), '/usr/lib/libicui18n.70.dylib' (no such file), '/opt/homebrew/Cellar/icu4c/71.1/lib/libicui18n.70.dylib' (no such file), '/usr/local/lib/libicui18n.70.dylib' (no such file), '/usr/lib/libicui18n.70.dylib' (no such file) zsh: abort npm -V
解决方案
方案1:重新安装对应版本的Node.js
问题核心是Node.js 18.6.0依赖的icu4c 70.x版本被brew cleanup清理,当前Homebrew的icu4c已升级到71.1,版本不匹配导致库找不到。重新安装Node.js会自动关联当前环境的icu4c:
brew reinstall node@18
若需要指定18.6.0版本:
brew install node@18.6.0
方案2:重新链接Node.js
若重新安装后仍有问题,检查并修正Node.js的软链接:
brew unlink node && brew link node@18
方案3:安装旧版本icu4c(临时兼容)
如果不想重新安装Node.js,可手动安装依赖的旧版icu4c:
brew install icu4c@70
然后设置环境变量让Node.js定位到该库(可添加到~/.zshrc或~/.bashrc永久生效):
export DYLD_LIBRARY_PATH="/opt/homebrew/opt/icu4c@70/lib:$DYLD_LIBRARY_PATH"
内容的提问来源于stack exchange,提问作者SudoCrack
相关产品推荐
相关产品推荐

