【问题标题】:Storybook is loading stories from a yarn/lerna monorepo's packages' node_modules folderStorybook 正在从 yarn/lerna monorepo 的包的 node_modules 文件夹中加载故事
【发布时间】:2019-05-29 05:47:15
【问题描述】:

我在 lerna/yarn 工作区 monorepo 中使用故事书。我今天注意到 storybook 正在尝试从 packages/**/node_modules/@scope/foo/stories/foo.stories.js 加载故事我已经尝试注销 config.js 中的 require.context 键,但它没有登录到控制台。有没有现成的方法来告诉故事书不要加载符号链接的本地node_modules?我可能错误地配置了故事书吗?这是我的配置:

import '@storybook/addon-console';
import { withA11y } from '@storybook/addon-a11y';
import { addDecorator, addParameters, configure } from '@storybook/polymer';

import theme from './my-theme'

const req = require.context('../packages', true, /\.stories\.js$/);
const load = filename =>  req(filename);

addParameters({ options: {
  panelPosition: 'right',
  theme,
} })

addDecorator(withA11y)

configure(function loadStories() {
  req.keys()
    .filter(filename => !filename.match(/packages\/.*\/node_modules/))
    .forEach(load);
}, module);

示例错误:

ERROR in ./packages/input/node_modules/@scope/collapse/stories/collapse.stories.js
Module not found: Error: Can't resolve '../../button/src/my-button' in '/Users/bennyp/Documents/web-components/packages/input/node_modules/@scope/collapse/stories'

这会导致故事书构建中断。

我如何告诉故事书不要从内部node_modules 加载故事?

【问题讨论】:

    标签: yarnpkg storybook lerna monorepo yarn-workspaces


    【解决方案1】:

    下面的正则表达式解决了这个问题

    const req = require.context('../packages', true,
      /^((?![\\/]node_modules[\\/]).)*\.stories\.js$/
    );
    

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 2022-12-17
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 2022-01-17
      • 2021-12-19
      • 1970-01-01
      • 2021-01-02
      相关资源
      最近更新 更多