什么是react-native链接?

时间:2018-04-17 09:23:51

标签: react-native react-native-android

  

react-native link 命令的目的是什么?

5 个答案:

答案 0 :(得分:12)

什么是react-native link

react-native link是安装本机依赖项的自动方法。它是在项目中手动链接依赖项的替代方法。它适用于Android和iOS。

手动链接项目时,大多数步骤都是相同的,因此使用react-native link可使您以较少的麻烦安装本地依赖项,而不必重复键入类似的代码或执行类似的操作。

但是,应注意,运行react-native link并不会始终完全链接软件包,有时需要执行其他步骤,并且应仔细检查安装说明。

在安装依赖项并将其链接之前,请务必仔细阅读说明。


iOS注意事项

如果您的项目使用的是 CocoaPods ,并且您链接的依赖项为.podspec,那么当您使用运行react-native link时,它将更新您的Podfile。这不是将文件直接添加到Xcode项目中。您还必须在pod install目录中运行ios,否则不会完全安装本机依赖项。

有时使用CocoaPods进行安装可能会导致更多问题,并且并非每个依赖项都需要使用CocoaPods进行安装,您可以始终按照我在本SO answer中概述的步骤来停止{ {1}}向react-native link添加了一个依赖项,虽然不理想,但这是一种解决方法。某些依赖项需要对Podfile进行添加,因此,只有在不需要运行Podfile的依赖项时,才应这样做。


podsreact-native link

在链接任何依赖项时应该只使用react-native link dependency-name,还是应该更明确地使用react-native link

根据我的经验,最好使用react-native link dependency-name。这是由于react-native link dependency-name会尝试链接(或重新链接)所有可以链接的依赖项,这可能导致代码重复。我遇到的大多数问题都是在链接Android本机依赖项时出现的。我认为在以后的更新中阻止这种情况已经取得了一些进展,但是这里的古老格言是一旦被咬,害羞两次


链接良好实践

在使用react-native link时,您应该遵循良好的做法,以免被刺伤。有时,您尝试的依赖项无法按预期工作,因此删除链接过程中添加的所有代码可能很棘手。 (如果您不熟悉Xcode项目文件,则可能会成为噩梦)。

这是我安装依赖项然后链接它们的方式。

  1. 请确保您使用的是版本控制,例如react-native link dependency-name
  2. 确保您的代码已完全提交,没有未保存的更改。
  3. 创建一个新分支,然后将其签出。
  4. 安装依赖项git
  5. 然后链接您依赖的npm i dependency-name
  6. 执行依赖项所需的所有其他安装步骤。有关依赖性,请参阅安装说明。
  7. 检查您的代码是否与新的依赖项一起使用。
  8. react-native link dependency-name更改并合并分支。

手动链接

如果您希望手动链接本机依赖项,​​则应该按照依赖项网站上的说明进行操作,或者可以查看react-native提供的文档。

当前,仅提供有关如何手动链接iOS项目的说明。

手动链接commmit要求您在以下位置进行更改:

  1. Android
  2. settings.gradle
  3. app/build.gradle

与往常一样,您应该进行的确切更改应查看依赖项的手动链接说明。


我必须链接吗?

这取决于您使用的依赖项,某些依赖项仅使用用Javascript编写的代码,因此不需要链接它们,并且运行MainApplication.java没有任何好处。

但是,如果依赖项包含本地代码,那么您将必须链接。手动或使用react-native link dependency-name

如何确定我是否需要链接依赖项?

首先,您需要检查网站,github存储库或npmjs.com页面上的依赖关系。安装后,通常会有说明告诉您是否链接依赖项。

如果找不到有关链接的任何说明,则您(可能)不需要链接。

如果仍然不确定,请与依赖项维护者联系。

我是否可以继续运行链接?

是的,如果没有任何链接,您将不会执行任何操作。但是请始终使用react-native link dependency-name来运行它,以避免出现问题。

我什么时候运行链接?

仅在安装依赖项后运行它。我建议您在安装依赖项后立即运行它。然后,在安装任何新的依赖项之前,应检查以确保其工作正常,以便可以轻松调试。

对于每个依赖项,您不必多次运行它。

您对javascript代码进行的组件数量或更改数量不会影响链接无关紧要,因为链接纯粹是本地的,而组件是javascript。

答案 1 :(得分:2)

链接本机库意味着您要将已实现的模块集成到您的应用程序或模块中,从而完成您的react本机模块功能。

集成lib(android)的步骤:

1)将包名称添加到新包()2)将相关性添加到settings.gradle文件和主应用程序的gradle即app / gradle文件。 3)同步项目gradle,因为你在gradle中进行了更改并完成了。

您必须执行以下所有手动步骤

1) Go to your project's home dir using cmd. 
2) run npm install 
3) Thereafter run rnpm link or react-native link 
4) see ios folder in your project folder and if you find any pod file then run pod install after navigating into ios folder in cmd.

现在改为

1) Go to your project's home dir using cmd. 
2) run npm install 
3) Thereafter run rnpm link or react-native link 
4) see ios folder in your project folder and if you find any pod file then run pod install after navigating into ios folder in cmd. 

答案 2 :(得分:2)

安装具有本地内容(Android或ios)的库后,您需要要求链接到组件react-native库。 像这样

react-native link react-native-sound-player

答案 3 :(得分:0)

当您安装具有本地内容的任何第三方库时,必须在android和ios中链接依赖项。 react-native链接负责将依赖项包含在gradlew和pod文件中。

假设您安装了react-native-vector-icons软件包,则必须链接gradlew文件。新版本的react native 0.60具有自动链接。

  

npm install react-native-vector-icons

     

反应本地链接react-native-vector-icons

答案 4 :(得分:0)

感谢您提出这个问题 如果您正在使用字体 react-native link 用于将字体和资源链接到项目

link 命令也用于将库链接到 react-native

但是现在 React-native 太好了所以不需要链接库 我们可以使用

  1. pos 安装

  2. npx jetify

它会自动链接库