我正在使用 React Native 为 Android 和 iOS 开发应用程序。
我正在使用的库之一有点问题,因为该应用程序只能正确编译:
"react-native": "0.42.0"
. "react-native": "0.37.0"
. (无论是库本身,还是
react-native
的特定版本对于本次讨论都不重要。重要的是我似乎“同时”需要两个单独的版本——每个平台一个不同的版本。)我正在寻找一种方法来拥有一个单一的代码库,该代码库可以使用任何平台的相关工具进行编译,无需任何修改1。我想到的解决方案是(以某种方式):
package.json
每个平台的文件。 但是,我不知道如何实现上述任一目标,或者它们是否可能。我尝试添加
.ios
和 .android
如 React-Native docs on platform-specific code 中所述,但 npm 无法识别这些文件。所以我的问题是:
1 在类似 C 的代码中,使用预处理器标志会很容易。
最佳答案
还没有试过,但我要去。有人建议我试试这个:“将 package.json
中的 npm 别名与 Metro 支持的特定于平台的文件(例如 Component.ios.js
)结合起来”
可能像……
{
"package-v1": "http://example.com/package-v1",
"package-v2": "http://example.com/package-v2",
// or GitHub based
"package-v1": "orgname/package#v1",
"package-v2": "orgname/package#v2",
}
// Component.ios.js
import "package-v1"
// Component.android.js
import "package-v2"
关于npm - 适用于 Android 和 iOS 的不同软件包版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42586022/