You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Expo TypeScript React Native项目中正确安装并配置Storybook以支持React Native组件

如何在Expo TypeScript React Native项目中正确安装并配置Storybook以支持React Native组件

我刚在自己的Expo + TypeScript React Native项目里搞定了Storybook的配置,之前也碰到了你说的问题:默认初始化的Storybook没法解析React Native组件。下面是我完整的操作步骤,你可以参考:

1. 初始化基础Storybook环境

首先按照指引执行初始化命令,安装过程中会让选择Webpack 5或Vite,我选了Webpack:

npx sb init --type react

安装全程没报错,能正常启动默认的Storybook,但这时候它还不识别React Native组件。

2. 安装RN Web支持依赖

接下来安装支持React Native Web的相关开发依赖,这些是让Storybook能解析RN组件的关键:

yarn add react-dom react-native-web babel-plugin-react-native-web @storybook/addon-react-native-web @react-native/babel-preset --dev

3. 配置.storybook/main.ts

修改.storybook/main.ts文件,添加必要的插件和Webpack配置,让Storybook能处理RN的文件和语法:
这里给你一份可用的配置示例,你可以根据自己的项目结构调整:

import type { StorybookConfig } from '@storybook/react-webpack5';

const config: StorybookConfig = {
  // 指定stories文件的路径,按需调整
  stories: ['../src/**/*.stories.@(ts|tsx)'],
  addons: [
    '@storybook/addon-links',
    '@storybook/addon-essentials',
    // 必须添加这个RN Web支持插件
    '@storybook/addon-react-native-web',
  ],
  framework: {
    name: '@storybook/react-webpack5',
    options: {},
  },
  // 自定义Webpack配置,处理TSX文件并应用RN的Babel预设
  webpackFinal: async (config) => {
    if (config.module?.rules) {
      config.module.rules.push({
        test: /\.(ts|tsx)$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@react-native/babel-preset'],
            plugins: ['react-native-web'],
          },
        },
      });
    }
    return config;
  },
};

export default config;

4. 补充项目Babel配置(可选)

如果你的项目根目录的babel.config.js还没配置RN相关预设,也需要同步修改:

module.exports = function(api) {
  api.cache(true);
  return {
    presets: [
      'babel-preset-expo', // 保留Expo的预设
      '@react-native/babel-preset',
      '@babel/preset-typescript'
    ],
    plugins: ['react-native-web'],
  };
};

5. 启动测试

完成所有配置后,重启Storybook:

yarn storybook

这时候你应该就能在Storybook里正常导入并展示React Native组件了。

备注:内容来源于stack exchange,提问作者0xC0DEGURU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:39:32