在 react-native 中提供 storybook 原始碼,以顯示在 storybook 網頁伺服器上

在 Github 上檢視

react-native-storysource-transformer 建置狀態

為 react-native 啟用 storybook storysource 擴充功能。

目的

此套件使 storysource 擴充功能與 react-native 相容,而 react-native 不受預設支援。

Storybook Screenshot

安裝與設定

步驟 1:安裝 react-native-storysource-transformer 函式庫

yarn add react-native-storysource-transformer --dev

步驟 2:設定 react native 打包器

適用於 React Native v0.58 或更新版本

將您的 metro.config.js 檔案與此設定合併

metro.config.js:

module.exports = {
  transformer: {
    babelTransformerPath: require.resolve(
      "react-native-storysource-transformer"
    ),
  },
};

如果您已使用其他轉換器,您可以參考如下的中繼檔案
metro.customTransformer.js :

const svgTransformer = require("react-native-svg-transformer");
const storyTransformer = require("react-native-storysource-transformer");

module.exports.transform = function (options) {
  if (options.filename.endsWith(".svg")) {
    return svgTransformer.transform(options);
  } else {
    return storyTransformer.transform(options);
  }
};

步驟 3:安裝 storysource 擴充功能

安裝 storysource 擴充功能和 source-loader 相依性

yarn add @storybook/addon-storysource --dev
yarn add @storybook/source-loader --dev

在您的 storybook/addons.js 檔案中新增這行

import "@storybook/addon-storysource/register";

步驟 4(選用):自訂設定

react-native-storysource-transformer 由專案的 package.json 中的 react-native-storysource-transformer 區段控制。

選項

設定 類型 描述 預設
filePatterns string[] 用於比對您的 stories 檔案的 blob 陣列。 ["**/*.stories.{js,ts}{x,}", "**/stories/index.{js,ts}{x,}"] 將會比對所有名稱為 *.stories.js/jsx/ts/tsx 的檔案和預設的 index story 檔案
storyMatcher(進階) string 用於解析 story 的正規表示式。如果您的 stories 不是使用一般慣例編寫(例如:storiesOf('Welcome', module).add(...),則可能需要此設定 "(storiesOf.*?\\(.*?module\\))"

範例

以下範例將處理所有結尾為 .stories.js.stories.jsx 的 stories。

package.json
{
  "name": "AwesomeProject",
  "config": {
    "react-native-storysource-transformer": {
      "filePatterns": ["**/*.stories.js", "**/*.stories.jsx"]
    }
  }
}

如果您變更任何這些選項,可能需要執行 yarn react-native start --reset-cache

開始

照常執行您的 storybook 伺服器和 storybook 應用程式

yarn storybook
react-native run-ios