React Native添加自定义字体遇阻:link命令无效、react-native-asset无反应
解决React Native 0.72.6中添加Monospace字体无效的问题
核心前提说明
React Native 0.70+版本已彻底弃用react-native link命令,因此你遇到的"命令未被识别"是正常现象,无需再使用该命令。以下是针对你的问题的分步解决方案:
1. 确认字体的实际内部名称(最容易踩坑的点)
字体文件名(如Monospace.ttf)不一定等于字体的实际内部名称,样式中必须使用实际名称才能生效:
- Windows:右键字体文件 → 属性 → 详细信息 → 查看「标题」字段
- Mac:双击字体文件,弹出窗口顶部显示的名称即为实际名称
- 命令行方式:
- Mac/Linux:
fc-scan ./assets/fonts/Monospace.ttf | grep "family:" - Windows:
powershell -Command "(Get-Item ./assets/fonts/Monospace.ttf).VersionInfo.ProductName"
- Mac/Linux:
修改你的样式代码,将fontFamily值替换为获取到的实际名称:
titleText: { position: 'relative', bottom: 200, fontSize: 55, fontFamily: '这里替换为字体实际名称', }
2. 修复react-native-asset无反应的问题
如果自动工具失效,按以下步骤排查:
- 确保在项目根目录执行命令,先清理缓存再执行:
npx react-native-asset --reset-cache - 重新安装依赖:
npm uninstall react-native-asset npm install react-native-asset --save-dev npx react-native-asset - 检查
react-native.config.js路径是否正确,确认./assets/fonts/目录下确实存在字体文件。
3. 手动配置字体(自动工具失效时的可靠方案)
Android端
- 手动创建
android/app/src/main/assets/fonts/目录(若不存在) - 将
Monospace.ttf复制到该目录下 - 无需额外配置,重启Metro并重新编译项目即可
iOS端
- 打开Xcode,将字体文件拖入项目中,勾选「Copy items if needed」并确保目标项目被选中
- 在
Info.plist中添加Fonts provided by application数组,将Monospace.ttf作为元素添加进去 - 执行
Product → Clean Build Folder清理缓存,再重新编译项目
4. 最终验证步骤
- 重启Metro服务:
npx react-native start --reset-cache - 重新编译项目:
- Android:
npx react-native run-android - iOS:
npx react-native run-ios
- Android:
- 运行项目后检查字体是否生效
内容的提问来源于stack exchange,提问作者24ycarasco
相关产品推荐
相关产品推荐

