Error: Cannot find module 'swiper/react' in next.js
Error: Cannot find module 'swiper/react' in next.js
将 Swiper 升级到版本 7.0.7
后,我收到了这个恼人的错误:
Error: Cannot find module 'swiper/react'
.
.
.
Source
.next\server\pages\items.js (1:0) @ Object.swiper/react
> 1 | module.exports = require("swiper/react");
在之前的版本中(6.8
)我没有看到这个错误。我还检查了 migration guide 和 github 问题,但没有找到有用的答案。
问题是 VSCode 中的“导入成本”扩展显示了导入模块的大小,所以我认为 Next.js 或 webpack 导出它有问题,但不知道如何让它发挥作用。
我 copy/pasted 来自 Swiper 文档的确切代码,但如果有帮助,我也会写在这里:
/* _app.js - imported here because Next doesn't allow global css imports elsewhere */
import 'swiper/scss';
/* slider component which is used inside pages/items.js */
import { Swiper, SwiperSlide } from "swiper/react"; /* 72.4k (gzipped 21.4k) */
export default function CategoriesBar() {
return (
<Swiper
spaceBetween={50}
slidesPerView={3}
onSlideChange={() => console.log('slide change')}
onSwiper={(swiper) => console.log(swiper)}
>
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
<SwiperSlide>Slide 3</SwiperSlide>
<SwiperSlide>Slide 4</SwiperSlide>
</Swiper>
);
}
更新
将Next.js升级到11.1.2
后,错误信息变为:
Error: Not supported
我找到了解决方案。它 与 next.js 和 webpack 无关。 ESM 模块支持从 Node.js 12.20
开始,我的是 12.16
。升级了我的 Node.js 安装,现在一切正常!
https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
将 Swiper 升级到版本 7.0.7
后,我收到了这个恼人的错误:
Error: Cannot find module 'swiper/react'
.
.
.
Source
.next\server\pages\items.js (1:0) @ Object.swiper/react
> 1 | module.exports = require("swiper/react");
在之前的版本中(6.8
)我没有看到这个错误。我还检查了 migration guide 和 github 问题,但没有找到有用的答案。
问题是 VSCode 中的“导入成本”扩展显示了导入模块的大小,所以我认为 Next.js 或 webpack 导出它有问题,但不知道如何让它发挥作用。
我 copy/pasted 来自 Swiper 文档的确切代码,但如果有帮助,我也会写在这里:
/* _app.js - imported here because Next doesn't allow global css imports elsewhere */
import 'swiper/scss';
/* slider component which is used inside pages/items.js */
import { Swiper, SwiperSlide } from "swiper/react"; /* 72.4k (gzipped 21.4k) */
export default function CategoriesBar() {
return (
<Swiper
spaceBetween={50}
slidesPerView={3}
onSlideChange={() => console.log('slide change')}
onSwiper={(swiper) => console.log(swiper)}
>
<SwiperSlide>Slide 1</SwiperSlide>
<SwiperSlide>Slide 2</SwiperSlide>
<SwiperSlide>Slide 3</SwiperSlide>
<SwiperSlide>Slide 4</SwiperSlide>
</Swiper>
);
}
更新
将Next.js升级到11.1.2
后,错误信息变为:
Error: Not supported
我找到了解决方案。它 与 next.js 和 webpack 无关。 ESM 模块支持从 Node.js 12.20
开始,我的是 12.16
。升级了我的 Node.js 安装,现在一切正常!
https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c