What is the purpose of the react-native link command?
最佳答案
Note: from React-Native
0.60.0
linking packages usingreact-native link
has become redundant. Autolink has been added to the React-Native CLI which means that iOS will now use cocoapods and Android will use gradle. You can read more about Autolinking here.
什么是
react-native link
?react-native link
是安装 native 依赖项的自动方式。它是手动链接项目中依赖项的替代方法。它适用于 Android 和 iOS。手动链接项目时,大部分步骤是相同的,因此使用
react-native link
允许您轻松安装 native 依赖项,而无需重复键入类似的代码或执行类似的操作。但是需要注意的是运行
react-native link
并不总是完全链接一个包,有时需要额外的步骤和你 应该检查仔细阅读安装说明。在安装依赖项并链接它之前,请务必仔细阅读说明。
iOS注意事项
如果您的项目正在使用 CocoaPods 并且您正在链接的依赖项具有
.podspec
然后当你使用 run react-native link
它会更新您的 Podfile
.这不是将文件直接添加到您的 Xcode 项目中。您还必须运行 pod install
在您的 ios
内目录,否则将不会完全安装 native 依赖项。有时安装使用
CocoaPods
可能会导致更多问题,并不是每个依赖都需要安装 CocoaPods
您始终可以按照我在此 SO answer 中概述的步骤进行操作停止react-native link
向 Podfile
添加依赖项,这并不理想,但它是一种解决方法。某些依赖项需要添加到 Podfile
,所以你应该只在依赖不需要时才这样做 pods
运行。react-native link
或 react-native link dependency-name
你应该使用
react-native link
链接任何依赖项时,或者您应该更明确地使用 react-native link dependency-name
?根据我的经验,最好使用
react-native link dependency-name
.这是因为 react-native link
将尝试链接(或重新链接)所有可以链接的依赖项,这可能导致代码重复。我遇到的大多数问题都是在链接 Android native 依赖项时。我认为在随后的更新中阻止这种情况发生已经取得了一些进展,但古老的格言在这里适用,一次被咬,两次害羞链接良好实践
使用时
react-native link dependency-name
你应该遵循良好的习惯,这样你就不会被蜇伤。有时,您尝试的依赖项不会按预期工作,并且删除在链接过程中添加的所有代码可能很棘手。 (如果您不熟悉 Xcode 项目文件可能是一场噩梦)。这就是我安装依赖项然后链接它们的方式。
git
. npm i dependency-name
react-native link dependency-name
commmit
更改并合并分支。 手动链接
如果您更喜欢手动链接您的本地依赖项,那么您应该按照依赖项网站上的说明进行操作,或者您可以查看 react-native 提供的文档。
目前只有关于如何手动链接的说明iOS项目。
手动链接
Android
要求您在以下位置进行更改:settings.gradle
app/build.gradle
MainApplication.java
对于您应该进行的确切更改,您应该查看依赖项的手动链接说明。
我必须链接吗?
这取决于您使用的依赖项,某些依赖项仅使用用 Javascript 编写的代码,因此不需要链接它们,并且运行
react-native link dependency-name
没有任何好处。 .但是,如果依赖项包含 native 代码 那么你将不得不链接。手动或使用
react-native link dependency-name
.如何判断是否需要链接依赖项?
首先,您需要检查网站、github 存储库或 npmjs.com 页面的依赖项。在安装依赖项后,通常会有说明告诉您是否链接依赖项。
如果您找不到有关链接的任何说明,则您(可能)不需要链接它。
如果您仍然不确定,请咨询依赖项维护者。
我可以只运行链接吗?
是的,如果没有任何链接,你可以它不会做任何事情。但始终使用
react-native link dependency-name
运行它以避免问题。我什么时候运行链接?
您只能在安装依赖项后运行它。我建议您在安装依赖项后立即运行它。然后,在安装任何新的依赖项之前,您应该检查以确保它可以正常工作,以便您可以轻松调试。
您不需要为每个依赖项多次运行它。
无论您制作多少个组件或对 javascript 代码进行更改都不会影响链接,因为链接是纯原生的,而组件是 javascript。
什么是自动链接?
自动链接是添加到
react-native-cli
中的一项新功能。 .您可以阅读有关自动链接的更多信息 here .Autolink
替换 react-native-link
Autolinking is a mechanism built into CLI that allows adding a dependency with native components for React Native to be as simple as:
yarn add react-native-webview
Autolinking is a replacement for react-native link that brings new features (such as ability to easily integrate native dependencies on iOS) and fixes some of the long-standing issues.
一旦它完全实现,它应该可以更容易地将带有 native 代码的依赖项添加到您的项目中。
关于react-native - 什么是 native 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49874385/