メインコンテンツへスキップ

ツリー外プラットフォーム

React NativeはAndroidおよびiOSデバイスだけではありません - パートナーとコミュニティは、次のような他のプラットフォームにもReact Nativeをもたらすプロジェクトを維持しています。

パートナー提供

コミュニティ提供

  • React Native tvOS - Apple TVおよびAndroid TVデバイス向けのReact Native。
  • React Native Web - React DOMを使用したWeb上のReact Native。
  • React Native Skia - レンダラーとしてSkiaを使用するReact Native。現在、LinuxとmacOSをサポートしています。

独自のReact Nativeプラットフォームの作成

現在、React Nativeプラットフォームをゼロから作成するプロセスはあまり文書化されていません。今後の再アーキテクチャ(Fabric)の目標の1つは、プラットフォームの保守を容易にすることです。

バンドル

React Native 0.57以降、React NativeのJavaScriptバンドラーであるMetroにReact Nativeプラットフォームを登録できるようになりました。つまり、--platform examplenpx 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に次のようなエントリが必要です。

{
"rnpm": {
"haste": {
"providesModuleNodeModules": ["react-native-example"],
"platforms": ["example"]
}
}
}

"providesModuleNodeModules"は、Hasteモジュール検索パスに追加されるモジュールの配列であり、"platforms"は有効なプラットフォームとして追加されるプラットフォームサフィックスの配列です。