React Native中的自动链接依赖

时间:2019-11-10 20:23:05

标签: react-native

上下文

我有几个React Native应用,它们共享一些组件和助手。
因此,我创建了一个存储共享代码的库,并通过将其作为依赖项添加到各自的package.json中来在我的应用程序中使用它。

在自定义库中,我使用react-native.config.js链接某些字体

module.exports = {
  assets: ['./assets/fonts']
};

在我的应用中,我执行npx react-native link my-custom-library来链接这些字体。

现在,此共享库也正在使用react-native-community/react-native-localize
而且我不知道如何在我的应用程序中链接它?

我在这里有2个问题:

  • 为什么我需要对字体进行npx react-native link my-custom-library
    React Native 60 的自动链接功能是否应该自动为我执行此操作?
  • 如何使用此设置链接react-native-localize

1 个答案:

答案 0 :(得分:0)

1)关于RN 0.60+的字体:

  • 您应该有一个react-native.config.js

具有以下内容:

module.exports = {
  project: {
    ios: {},
    android: {},
  assets: ['./src/assets/fonts', 'react-native-vector-icons'],
  // Add the rn-vector icons in the above array only if you use that module, or your <libraryName> too.
};
  • 运行react-native链接,您应该看到如下日志:
  

信息将资产链接到ios项目信息将资产链接到android

     

项目成功资产已成功链接到您的项目

  • 在Info.plist文件中添加字体:

    <key>UIAppFonts</key>
    <array>
     <string>AntDesign.ttf</string>
     <string>Entypo.ttf</string>
     <string>EvilIcons.ttf</string>
     <string>Feather.ttf</string>
     <string>FontAwesome.ttf</string>
     <string>FontAwesome5_Brands.ttf</string>
     <string>FontAwesome5_Regular.ttf</string>
     <string>FontAwesome5_Solid.ttf</string>
     <string>Foundation.ttf</string>
     <string>Ionicons.ttf</string>
     <string>MaterialIcons.ttf</string>
     <string>MaterialCommunityIcons.ttf</string>
     <string>SimpleLineIcons.ttf</string>
     <string>Octicons.ttf</string>
     <string>Zocial.ttf</string>
    </array>
    
  • Run Script Only When Installing中检查Xcode->YourProjectTarget->BuildPhases-> Copy Pods Resources

  • 确保您清除了所有缓存:

rm -rf $TMPDIR/react- && rm -rf $TMPDIR/metro- && rm -rf $TMPDIR/haste-* && watchman watch-del-all && rm -rf ios/build并重新启动JS服务器。

此处提供来源和更多信息:

https://medium.com/@mehran.khan/ultimate-guide-to-use-custom-fonts-in-react-native-77fcdf859cf4

没有react-native link命令,我无法使字体工作,而且似乎其他人也遇到了这个问题。

2)关于react-native-localize

如果您已经手动链接了它,只需运行react-native unlink react-native-localize,然后转到ios文件夹并运行pod install

use_native_modules行(来自Podfile)将使pod安装程序从node_modules搜索库文件夹中的pod spec文件(RNLocalize.podspec)并安装并自动链接。

注释:

  • 此答案已在iOS模拟器上的RN 0.61.4中进行了测试
  • 提示如何链接提供我在这里找到的字体的库:

https://github.com/oblador/react-native-vector-icons/issues/1041