yarnpkg - Storybook 正在从 yarn/lerna monorepo 的包的 node_modules 文件夹中加载故事
问题描述
我在 lerna/yarn 工作区 monorepo 中使用故事书。我今天注意到故事书正在尝试从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
?
解决方案
以下正则表达式解决了问题
const req = require.context('../packages', true,
/^((?![\\/]node_modules[\\/]).)*\.stories\.js$/
);
推荐阅读
- javascript - react.js 在按钮单击时触发另一个组件内的事件
- scala - 由于未解析的依赖路径,覆盖失败
- angular - 在 Angular html 中嵌入 PDF 时出现内容安全策略错误
- reactjs - React / Typescript:单击另一个元素时如何触发一个元素上的功能?
- angular-ngselect - 带有 labelForId 和 id 的 ng-select
- java - 获取坞站的MAC地址忽略MAC地址通过
- sql - 如何将列外推到已知的到期日期列
- slack - 是否可以使 Slack static_select 成为模式中的必填字段?
- ruby-on-rails - 向 Rails 模型添加额外字段以减少不必要的数据库查询
- firebase - Firebase 实时数据库分析器两次计算列表调用