树外平台
React Native 不仅支持 Android 和 iOS 设备——我们的合作伙伴和社区维护着将 React Native 带到其他平台的项目,例如:
来自合作伙伴
- React Native macOS - React Native for macOS 和 Cocoa。
- React Native Windows - React Native for Microsoft 的通用 Windows 平台 (UWP)。
- React Native visionOS - React Native for Apple 的 visionOS。
来自社区
- React Native tvOS - React Native for Apple TV 和 Android TV 设备。
- React Native Web - 使用 React DOM 在 Web 上运行 React Native。
- React Native Skia - 使用 Skia 作为渲染器的 React Native。目前支持 Linux 和 macOS。
创建你自己的 React Native 平台
目前,从头开始创建 React Native 平台的过程并没有得到很好的文档说明——即将到来的重构(Fabric)的目标之一是让维护平台更容易。
打包
从 React Native 0.57 开始,你现在可以将你的 React Native 平台注册到 React Native 的 JavaScript 打包器 Metro。这意味着你可以将 --platform example 传递给 npx react-native bundle,它将查找具有 .example.js 后缀的 JavaScript 文件。
要将你的平台注册到 RNPM,你的模块名称必须匹配以下模式之一:
react-native-example- 它将搜索所有以react-native-开头的顶级模块@org/react-native-example- 它将搜索任何作用域下以react-native-开头的模块@react-native-example/module- 它将搜索以@react-native-开头的模块作用域下的所有模块
你还必须在你的 package.json 中添加如下条目:
json
{
"rnpm": {
"haste": {
"providesModuleNodeModules": ["react-native-example"],
"platforms": ["example"]
}
}
}
"providesModuleNodeModules" 是一个将添加到 Haste 模块搜索路径的模块数组,而 "platforms" 是一个将作为有效平台添加的平台后缀数组。