一种仅 link 字体响应原生的方法

A way to only link fonts react native

我正在使用 React Native,我只想 link 我的字体,没有别的。

我正在使用 react-native-maps,它在文档中特别说明 "Do not use react-native link"

我到处都看到人们说要 react-native link 才能 link 字体,但我想知道是否有适合 linking 字体的语法,例如:

react-native link ./assets/fonts 之类的?这样它就不会 link 我所有的其他库

我将手动 link 他们。不过,这对 react-native-maps 来说是一个非常奇怪的要求。 react-native 中几乎所有的独立图书馆都需要 linking.

如果其他人有更好的答案,请告诉我。

https://medium.com/@kswanie21/custom-fonts-in-react-native-tutorial-for-ios-android-76ceeaa0eb78

^ 我知道堆栈溢出不喜欢 links 但有很多步骤和图像。

编辑

很酷,如果您这样做 react-native link <specific-library-name-here>,那么 react-native 将首先 link 您的资产,然后 link 那个特定的图书馆。因此,如果您只想 link 您的字体,您可以通过 link 一些特定的库来实现。

编辑 2

如果您只想 link 您的资产文件夹,请尝试 react-native link "package-that-does-not-exist",它仍然会 link 您的资产,而不会 link 任何其他内容。

您可以给 react-native link 一个在您的 package.json 中不存在的参数/名称 - 这将导致命令的任务列表仅包含 link assets task.

所以 react-native link ./assets/fonts 不是一个有效的命令,但它应该可以工作。

请记住,您需要根据 Hamed's answer 在 package.json 中指定的字体目录。

有一个名为 react-native-assets 的合适包,它仅链接和取消链接资产。节省了我手动链接的时间。

https://www.npmjs.com/package/react-native-asset

虽然 Marek Lisik 答案对我没有用,而且我也不想使用第三方库来完成这么小的任务。 因此,我通过复制 follwing 文件夹中的字体文件手动解决了这个问题 android 开发。

your_app\android\app\src\main\assets\fonts

对于ios,您也可以按照E Pierre回答。

如果 React Native 版本 ≥ 0.60

在项目根目录下创建文件react-native.config.js并添加以下代码

module.exports = {
  project: {
    ios: {},
    android: {}
  },
  assets: ["./assets/fonts/"]
};

和运行命令:react-native linknpx react-native link

有时你在这种情况下正确地写了 react-native.config.js ;如果您执行此任务,它会对您有所帮助

1-删除react-native.config.js文件

2- 使用相同的代码再次创建此文件

3- 在控制台中写入 react-native link

然后你可以在 Xcode 中看到资源文件夹,你可以在 info.plist 中看到你的字体并复制资源包