故事书相对路径故事

Posted

技术标签:

【中文标题】故事书相对路径故事【英文标题】:Storybook relative path stories 【发布时间】:2019-08-28 11:51:32 【问题描述】:

我正在尝试使我的 ui-components 故事和代码在层次结构中匹配。例如,如果我添加另一个子按钮组件,我希望它反映在故事书中的Buttons 下。每个组件都有一个独立的故事,并被导入到一个故事 (stories/index.stories.js) 中,如下所示:

const req = require.context("../ui-components", true, /.stories\.js$/);
function loadStories() 
  req.keys().forEach(filename => req(filename));


configure(loadStories, module);

这是我的文件夹结构

- ui-components
-- Button
--- Nested_Button
---- index.js
---- stories.js
-- index.js
-- stories.js
....
- stories
-- index.stories.js

故事名称将使用斜线嵌套,那么有没有办法可以像这样编写我的组件故事?

const ButtonStories = storiesOf(`$THIS_MODULE_PATH_RELATIVE_TO_UI_COMPONENTS_DIR`, module).add(
  "A basic button",
  () => <Button>Basic Button</Button>
);

【问题讨论】:

【参考方案1】:

我最终做的是在我的组件故事中使用 __dirname 变量作为故事名称。

由于 Storybook 使用默认配置,这之前无法正常工作,因此我添加了自定义 webpack.config.js 以获取正确的路径。


const path = require("path");

// Export a function. Accept the base config as the only param.
module.exports = async ( config, mode ) => 
  // `mode` has a value of 'DEVELOPMENT' or 'PRODUCTION'
  // You can change the configuration based on that.
  // 'PRODUCTION' is used when building the static version of storybook.

  // Make whatever fine-grained changes you need
  config.node = 
    __dirname: true,
    __filename: true
  ;

  // Return the altered config
  return config;
;

【讨论】:

以上是关于故事书相对路径故事的主要内容,如果未能解决你的问题,请参考以下文章

故事书 6,使用模块路径?

下一个/路由器:无法读取 null 的属性“路径名”(故事书)

无法在子路径上托管 Storybook

替换 Facebook Feed 中的相对 URL

如何用word制作故事书

Mapbox Unity SDK:故事和显示较短的相对距离