[WIP umbrella issue for discussion/ideas, to help surface proposals]
What counts as a React platform?
Is using react-reconciler enough to count as a platform? Or does react-test-renderer count, for the case of react-sketchapp?
Will Metro be an explicit requirement, or will Webpack/ be supported as entrypoint bundlers?
Some runtime environments may be in sandboxes where running bundlers like Metro aren't appropriate, such as in design software plugins, where file extensions are nice as a universally accepted standard across bundlers, especially with Babel extension preferences.
Should file extensions remain a stable/supported default for out-of-tree platforms?
How should imports work?
Is import { ... } from 'react-native'; a safe pattern for out-of-tree platforms?
How can we make sure that props are types without tsconfig hacks?
Proposal
Standardise platform-specific imports around react-native-ios, react-native-windows, or @react-native/ios.
Support react-native as a common API surface across platforms, or have react-platform/react-primitives as a common API layer that maps to react-native-windows, etc. Or have react-primitives for react-reconciler platforms that don't have the full Metro/Fabric setup (e.g. react-primitivesView import aliases to react-native-<platform><View>, and react-native for those that do.
[WIP umbrella issue for discussion/ideas, to help surface proposals]
What counts as a React platform?
Is using react-reconciler enough to count as a platform? Or does
react-test-renderer
count, for the case ofreact-sketchapp
?Will Metro be an explicit requirement, or will Webpack/ be supported as entrypoint bundlers?
How should imports work?
import { ... } from 'react-native';
a safe pattern for out-of-tree platforms?tsconfig
hacks?Proposal
Standardise platform-specific imports around
react-native-ios
,react-native-windows
, or@react-native/ios
.Support
react-native
as a common API surface across platforms, or havereact-platform
/react-primitives
as a common API layer that maps toreact-native-windows
, etc. Or havereact-primitives
forreact-reconciler
platforms that don't have the full Metro/Fabric setup (e.g.react-primitives
View
import aliases toreact-native-<platform>
<View>
, andreact-native
for those that do.