Storybook 无法导入 Swiper 模块

Posted

技术标签:

【中文标题】Storybook 无法导入 Swiper 模块【英文标题】:Storybook Can't Import Swiper Module 【发布时间】:2021-11-20 17:21:11 【问题描述】:

我正在尝试导入 Swiper 以响应我的应用程序并在 Storybook 中使用它。

我有以下导入:

import  Swiper, SwiperSlide  from 'swiper/react';

这在 React 应用程序中有效,但在 Storybook 中无效,我收到以下错误:

ModuleNotFoundError: Module not found: Error: Can't resolve 'swiper/react'

其他 React 模块可以毫无问题地导入。我需要更改 Storybook 中的某些配置吗?

【问题讨论】:

我们能解决这个问题吗?我有同样的问题,storybook 似乎认为swiper/react 是模块,而swiper 是模块,react 是模块内的文件夹 我猜你必须使用 Swiper V6 【参考方案1】:

Swiper v7+ 使用 ESM 模块。要使其与故事书一起使用,您必须更新故事书以使用 webpack5 而不是默认的 webpack4。还要确保您当前的节点版本必须等于或高于 12.20、14.13 或 16。这些是支持 ESM 模块的版本。

就我而言,我还删除了 .storybook/main.js 中的插件 @storybook/react 行,因为它仍然使用 webpack4 并引发配置验证错误。之后就可以正常运行了。

完整说明

https://gist.github.com/shilman/8856ea1786dcd247139b47b270912324#upgrade

https://storybook.js.org/blog/storybook-for-webpack-5/

【讨论】:

更新到webpack5后成功,谢谢。

以上是关于Storybook 无法导入 Swiper 模块的主要内容,如果未能解决你的问题,请参考以下文章

NextJS、Storybook、SVG 和绝对导入路径

无法让 css 模块在 Typescript Storybook 项目中工作

将 Nuxt 模块放入 Storybook

React Storybook SVG 无法在“文档”上执行“createElement”

在 Storybook Vue 中导入节点模块

Storybook main.ts:不能在模块外使用 import 语句