Install
Peer dependencies
Install the library’s peer dependencies in your app. Versions should match your React Native / Expo SDK.
Follow the install docs for Skia,
Reanimated,
and Gesture Handler
for your toolchain.
Babel
The package ships TypeScript source, so your app’s bundler compiles it with the same stack as a typical Expo / Reanimated 4 project. You need:babel-preset-expo(or an equivalent preset that includes Reanimated’s Babel plugin), andreact-native-worklets/pluginas the last entry in yourpluginsarray.
babel.config.js
Metro / package exports
From Expo SDK 53+, Metro resolvesimport using package.json exports, including the
react-native condition. This library’s runtime entry is src/index.ts under that condition —
your Metro + Babel pipeline compiles it.
If you disabled package exports (unstable_enablePackageExports: false), re-enable them or align
your resolver so resolution matches the published map.
Optional: Worklets Bundle Mode
LiveChart does not need a separate prop or runtime API for Bundle Mode. The package ships source, so enabling Bundle Mode in your app’s Babel and Metro configuration also compiles LiveChart’s worklets in Bundle Mode. The setup below was verified withreact-native-worklets 0.10.0, Expo 57, and React Native
0.86. Bundle Mode configuration is app-wide and must be enabled in both Babel and Metro. Check the
Worklets compatibility and setup docs before applying it to a different toolchain version.
babel.config.js
metro.config.js
Gesture handler root
Scrubbing uses Gesture Handler, so wrap your app (or the screen hosting the chart) in aGestureHandlerRootView:
Supported platforms
react-native-livechart targets iOS and Android via React Native (bare workflow or Expo). React Native Web is not supported. The chart relies on@shopify/react-native-skia and
Reanimated worklets running on the native UI thread; the same code path doesn’t run under
react-native-web. If you ship to web, render a different chart (or a static fallback) when
Platform.OS === "web".