getStorybook()出错,错误信息为"无法读取未定义的属性(读取'stories')",

mrwjdhj3  于 3个月前  发布在  其他
关注(0)|答案(4)|浏览(25)

描述bug

我们使用 screener-storybook 来运行针对我们的故事书故事的视觉测试。它使用 require('@storybook/react').getStorybook 来接入 storybook。从两天前开始,对这个 API 的调用开始持续失败。我们没有更改与 storybook 相关的内容,而且我可以在项目之外重现这个问题,而不使用 screener-storybook ,所以我认为这与我们的配置或该库无关。同时,这个问题也出现在多个独立的仓库中。

重现

我尝试使用 npx sb@next repro 重现问题,但是遇到了生成器的问题,所以我在这里重现: https://stackblitz.com/edit/github-kza2ty?file=.storybook/preview.js

  • 打开链接
  • 打开控制台
  • 等待 storybook 启动
  • 注意控制台中的错误。

我在默认的故事书设置中添加的唯一内容是调用 require('@storybook/react').getStorybook()

系统

Environment Info:

  System:
    OS: macOS 12.6
    CPU: (10) x64 Apple M1 Pro
  Binaries:
    Node: 14.19.3 - ~/.nvm/versions/node/v14.19.3/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v14.19.3/bin/yarn
    npm: 6.14.17 - ~/.nvm/versions/node/v14.19.3/bin/npm
  Browsers:
    Chrome: 105.0.5195.125
    Safari: 16.0
  npmPackages:
    @storybook/addon-a11y: ~6.5.12 => 6.5.12 
    @storybook/addon-actions: ~6.5.12 => 6.5.12 
    @storybook/addon-docs: ~6.5.12 => 6.5.12 
    @storybook/addon-essentials: ~6.5.12 => 6.5.12 
    @storybook/addon-interactions: ^6.5.12 => 6.5.12 
    @storybook/addon-links: ~6.5.12 => 6.5.12 
    @storybook/addon-storysource: ~6.5.12 => 6.5.12 
    @storybook/addons: ~6.5.12 => 6.5.12 
    @storybook/builder-webpack5: ^6.5.12 => 6.5.12 
    @storybook/components: ~6.5.12 => 6.5.12 
    @storybook/jest: ^0.0.10 => 0.0.10 
    @storybook/manager-webpack5: ^6.5.12 => 6.5.12 
    @storybook/react: ^6.5.12 => 6.5.12 
    @storybook/source-loader: ~6.5.12 => 6.5.12 
    @storybook/testing-library: ^0.0.13 => 0.0.13 
    @storybook/theming: ~6.5.12 => 6.5.12

附加上下文

我尝试将 storybook 版本降级到 6.4,甚至升级到最新的 7.0-alpha.34(在 v7 中,stories 现在被称为 entries)但仍然看到错误,所以似乎与 storybook 的版本无关。

错误

bootstrap:27 Uncaught TypeError: Cannot read properties of undefined (reading 'stories')
    at ClientApi.getStorybook (ClientApi.js:371:1)
    at ./.storybook/preview.js (preview.js:108:1)
    at __webpack_require__ (bootstrap:24:1)
    at fn (hot module replacement:62:1)
    at ./.storybook/preview.js-generated-config-entry.js (preview.js:112:1)
    at __webpack_require__ (bootstrap:24:1)
    at __webpack_exec__ (generated-stories-entry.cjs:6:1)
    at generated-stories-entry.cjs:6:1
    at __webpack_require__.O (chunk loade
clj7thdc

clj7thdc1#

➗ 我也在我的仓库里遇到了这个问题。请帮忙解决!

xdnvmnnf

xdnvmnnf2#

感谢提供的优秀复制品,我们能够证明我们的新筛选器故事书钩子对于storyStoreV7也适用于您的神秘边缘案例。我们已经完成了端到端的视觉测试结果,并期待尽快推出alpha版本以获取反馈。
这是我们迈向正确支持screener-storybook的第一步,我们将确保还有以下路径可供选择:

  • 框架中存在遗留的getStorybook功能
  • main.js/features/storyStoreV7未被选中

5anewei6

5anewei63#

更新:筛选器故事书的beta版本不再使用这种方法,请注意在README中提到的"无钩子"评论,包括静态构建,在这种情况下,您希望删除对preview.js的任何手动添加。

isr3a4wc

isr3a4wc4#

Screener Storybook 1.0现已发布,且自此版本起不再存在require('@storybook/react').getStorybook
请根据我们的旧说明,手动从您的构建中删除任何可能已添加的__screener_storybook__遗留钩子。

相关问题