Reputation: 784
Swiper 7.0.5 swiper/css gives error Module not found: Can't resolve 'swiper/css'
import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/css';
function Test() {
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>
);
}
export default Test;
Upvotes: 43
Views: 100055
Reputation: 324
Currently the best solution is to use the "swiper element" which is available in the current version (11). The css import method is no longer the old way. You must import css according to its document in the following way:
const params = {
modules: [Navigation, Pagination],
// inject modules styles to shadow DOM
injectStylesUrls: [
'swiper/element/css/navigation',
'swiper/element/css/pagination',
],
};
You can read the document for more information: https://swiperjs.com/element
Upvotes: 1
Reputation: 728
NextJs
error screen. Module not found. Swiper
In my case the NextJs
error screen says:
Module not found: Package path ./modules/pagination/pagination.min.css is not exported from package \node_modules\swiper (see exports field in \node_modules\swiper\package.json)
So, if you look at the node_modules\swiper\package.json
file, you will see various exports. For example, in my case I tried to import:
import 'swiper/modules/navigation/navigation.min.css';
And I found a suitable export in the node_modules\swiper\package.json
:
{
/* ... */
"exports": {
/* ... */
"./css/navigation": "./modules/navigation/navigation.min.css",
/* ... */
},
/* ... */
}
So I changed my import
like this:
import 'swiper/css/navigation';
Now everything is ok.
Upvotes: 0
Reputation: 433
I'm using Swiper v9.x
and saw it control what exports from package.json
, like below:
"exports": {
".": "./swiper.esm.js",
"./core": "./swiper.esm.js",
"./swiper.esm.js": "./swiper.esm.js",
"./bundle": "./swiper-bundle.esm.js",
"./swiper-bundle.esm.js": "./swiper-bundle.esm.js",
"./css": "./swiper.min.css",
"./swiper.min.css": "./swiper.min.css",
"./swiper.css": "./swiper.css",
"./css/bundle": "./swiper-bundle.min.css",
"./swiper-bundle.min.css": "./swiper-bundle.min.css",
"./swiper-bundle.css": "./swiper-bundle.css",
...
}
you can try upgrade Swiper version and try again, may this help you :)
Upvotes: 0
Reputation: 3040
For version 9.0.0, they changed the export reference in the package.json:
@import 'swiper/scss';
@import 'swiper/scss/pagination';
@import 'swiper/scss/navigation';
@import 'swiper/scss/a11y';
You can see the full list of references here.
Some IDE will complain about this, but the code will compile just fine.
Upvotes: 2
Reputation: 127
For those using swiper v8.0.7, just do this:
Include <script src="path/to/swiper.min.js"></script>
in your index.html file.
Include import "swiper/css"
in your JSX/TSX file (assuming you are using react) file.
Viola!
Upvotes: 0
Reputation: 9
For anyone in the future that might run into this problem well working with Next.js, I ended up only including this line:
import 'swiper/swiper-bundle.min.css'
and removed any specific css imports (in my case, the navigation css). Everything worked great after that.
Upvotes: 0
Reputation: 436
try with one of the following imports
import 'swiper/swiper.less';
import 'swiper/swiper.scss';
import 'swiper/swiper-bundle.css';
import 'swiper/swiper-bundle.min/css';
Upvotes: 0
Reputation: 141
I encountered the same issue. As a result, I'm forced to drop to 6.8.4
.
To begin, uninstall the most recent version of swiper js.
npm uninstall swiper
then install
npm install [email protected]
Then replace
// swiper bundle styles
import 'swiper/swiper-bundle.min.css'
// swiper core styles
import 'swiper/swiper.min.css'
// modules styles
import 'swiper/components/navigation/navigation.min.css'
import 'swiper/components/pagination/pagination.min.css'
Upvotes: 4
Reputation: 729
after a whole day looking, I finally fixed it. remove swiper entirely and add version 6.8.4: npm:
npm install [email protected]
yarn:
yarn add [email protected]
then add this layout to your file and it should work:
import { Swiper, SwiperSlide } from "swiper/react";
import 'swiper/swiper-bundle.min.css'
import 'swiper/swiper.min.css'
<Swiper
spaceBetween={50}
slidesPerView={3}
centeredSlides
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>
version 6.8.4 documentation is here
Upvotes: 30
Reputation: 91
If you are using Swiper with create-react-app, their docs mention something about imports regarding Swiper & create-react-app.
This is the reason why others have suggested different ways of importing their components when using with React. Thus, this link & their way of importing is all you need to get started.
But do note that they import their .scss
files so if you're not using .scss
, then just import their .min.css
files like they do, replacing with whatever component(s) you use.
For example, what I used was:
`
// Styles must use direct files imports
import 'swiper/swiper.min.css'; // core Swiper
import 'swiper/modules/navigation/navigation.min.css'; // Navigation module
import 'swiper/modules/free-mode/free-mode.min.css'; // Pagination module
import 'swiper/modules/thumbs/thumbs.min.css'; // Pagination module`
Upvotes: 1
Reputation: 41
How I solved swipe css module not found problem for version:^8.2.1 If you look at swipe's package.json into node_modules you'll see
"exports": {
"./css": "./swiper.min.css",
"./css/bundle": "./swiper-bundle.min.css",
}
You have to import the css file or css bundle by calling
import 'swipe/css'; import 'swipe/css/bundle';
Upvotes: 4
Reputation: 127
If you are using version ^8.1.4
. Cause it was imported in the wrong direction in the package, the docs might be doesn't update yet.
You can use like this.
import { Swiper, SwiperSlide } from "swiper/react/swiper-react";
import "swiper/swiper-bundle.min.css";
import "swiper/swiper.min.css";
Upvotes: 1
Reputation: 111
"swiper": "^8.0.2" version, how I solved it
import 'swiper/swiper.min.css';
Other csss used to clone the demo.
import 'swiper/modules/free-mode/free-mode.min.css';
import 'swiper/modules/navigation/navigation.scss';
import 'swiper/modules/thumbs/thumbs.min.css';
If css files are not allowed to be imported individually, try adding them to the top root paths such as index.jsx.
import 'swiper/swiper-bundle.css';
Upvotes: 11
Reputation: 962
By default Swiper exports only core version without additional modules (like Navigation, Pagination, etc.). So you need to import and configure them too:
import 'swiper/css';
import 'swiper/css/navigation';
import 'swiper/css/pagination';
If you want to import Swiper with all modules (bundle) then it should be imported from swiper/bundle:
import Swiper from 'swiper/bundle';
import 'swiper/css/bundle';
Upvotes: 2
Reputation: 1
Ans: $import "swiper/swiper.min.css"
;
Try this. if u have to import any css for pagination, effect-coverflow, etc then import like this..
import "swiper/modules/pagination/pagination.min.css";
import "swiper/modules/effect-coverflow/effect-coverflow.min.css";
"nodemodules/swiper/modules " contains all the styling.
if not solved... then simply got to nodemodules
and open the swiper
file then search for css files
required to import for your project and then import
them in code
Upvotes: 0
Reputation: 739
For [email protected]
, the imports in a Create-React-App project work this way -
import React from 'react'
import { Pagination } from 'swiper'
import { Swiper, SwiperSlide } from 'swiper/react/swiper-react'
import 'swiper/swiper.min.css'
import 'swiper/modules/pagination/pagination.min.css'
Upvotes: 46
Reputation: 31
Replace it with
import { Swiper, SwiperSlide } from "swiper/react/swiper-react"; import "swiper/swiper-bundle.min.css";
Upvotes: 3
Reputation: 31
In recent versions of Swiper, there is no longer a css folder. So... to put it simply: swiper/css no longer exists.
But the scss file is available so you can simply adapt your import in this way import 'swiper/swiper.scss';
Of course as you are on React you will also need the node-sass library
Upvotes: 3