Как я могу создать свой React Native Storybook для Интернета? - PullRequest
1 голос
/ 15 марта 2020

Я использую React Native Storybook , который запускает Storybook в эмуляторе Native.

В дополнение к тому, как в настоящее время работает React Native Storybook, я также хотел бы создать его экземпляр для веба в качестве справочного пособия для нашего приложения.

Я использую "@storybook/react-native": "5.3.14". Мои истории расположены по адресу ./storybook.

1 Ответ

1 голос
/ 15 марта 2020

Установите react-native-web, @storybook/react и babel-plugin-react-native-web из npm в вашем проекте root.

Добавьте новый каталог конфигурации для Storybook, скажем, ./.storybook-website. Внутри этого каталога добавьте main.js. В противном случае это создание будет выполнено мастером установки Storybook.

my-app
├── .storybook-website
│   └── main.js
└── // .... rest of your app

Добавьте следующее содержимое в main. js:

module.exports = {
  stories: ['../storybook/stories/index.js'],
  webpackFinal: async (config) => {
    config.resolve.alias = {
      ...(config.resolve.alias || {}),
      // Transform all direct `react-native` imports to `react-native-web`
      'react-native$': 'react-native-web',
      // make sure we're rendering output using **web** Storybook not react-native
      '@storybook/react-native': '@storybook/react',
      // plugin-level react-native-web extensions
      'react-native-svg': 'react-native-svg/lib/commonjs/ReactNativeSVG.web',
      // ... 
    };
    // mutate babel-loader
    config.module.rules[0].use[0].options.plugins.push(['react-native-web', { commonjs: true }]);
    // console.dir(config, { depth: null });
    return config;
  },
};

Обновите путь stories в main. js в соответствии с расположением существующего root story.

Наконец, добавьте сценарии запуска в ваш пакет. json:

"storybook:web": "start-storybook -p 6006 --config-dir ./.storybook-website",
"storybook-build:web": "build-storybook --config-dir ./.storybook-website --output-dir dist-storybook-website --quiet"

Presto! Запустите, используя yarn storybook:web. Это запустит сервер рассказов storybook, открыв браузер, показывающий, что вы обычно видите в эмуляторе устройства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...