我正在运行React Native Storybook,它在本机模拟器中运行Storybook。
除了React Native Storybook目前如何工作外,我还想为Web构建它的一个实例,作为我们应用程序的参考伴侣。
我正在使用"@storybook/react-native": "5.3.14"
。我的故事位于./storybook
。
答案 0 :(得分:2)
从npm在项目根目录中安装react-native-web
,@storybook/react
和babel-plugin-react-native-web
。
为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;
},
};
将main.js中的stories
路径更新为现有根故事的位置。
最后将运行脚本添加到package.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开发服务器,打开一个浏览器,显示您通常在设备仿真器中看到的内容。