Swiper bundler CSS has a base64 font-face, When I was trying to load it into my index.ts (main entry) file it gives me the following error. I was tried a lot of loaders (url-loader, base64-font-loader, etc) for this but none of these were worked for me. How can I fix this problem? Which loader should I use to fix this problem?
index.ts
JavaScript
x
6
1
import Swiper, { Navigation, Pagination } from 'swiper';
2
import 'swiper/swiper-bundle.css'; //swiper stylesheet
3
import './index.scss'; //other stylesheet
4
5
//...other stuff
6
error:
JavaScript
1
13
13
1
ERROR in ./node_modules/swiper/swiper-bundle.css 13:0
2
Module parse failed: Unexpected character '@' (13:0)
3
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
4
| */
5
|
6
> @font-face {
7
| font-family: 'swiper-icons';
8
| src: url('data:application/font-woff;charset=utf-8;base64, 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') format('woff');
9
@ ./src/index.ts 43:0-35
10
11
webpack 5.11.0 compiled with 1 error in 9441 ms
12
[webpack-cli] watching files for updates
13
webpack.config.js:
JavaScript
1
151
151
1
/**
2
*
3
* WebPack Configuration --
4
*/
5
6
const path = require("path");
7
const HtmlWebpackPlugin = require("html-webpack-plugin");
8
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
9
10
module.exports = {
11
watch: true,
12
devtool: 'source-map',
13
mode: 'development',
14
15
entry: {
16
bundle: path.resolve(__dirname, './src/index.ts')
17
18
},
19
output: {
20
path: path.resolve(__dirname, './public'),
21
filename: 'static/scripts/[name].js',
22
publicPath: "./"
23
},
24
25
resolve: {
26
extensions: [
27
'.ts', '.js', '.scss', '.sass', '.css'
28
]
29
},
30
31
module: {
32
rules: [
33
/**
34
*
35
* TypeScript + JavaScript
36
*/
37
{
38
test: /.m?(js|ts)$/gi,
39
exclude: /node_modules/,
40
use: [
41
{
42
loader: 'babel-loader',
43
options: {
44
presets: ['@babel/preset-env']
45
}
46
},
47
48
'ts-loader'
49
]
50
},
51
52
/**
53
*
54
* SCSS + SASS + CSS
55
*/
56
57
{
58
test: /.s?(css|ass)$/gi,
59
exclude: /node_modules/,
60
use: [
61
MiniCssExtractPlugin.loader,
62
'css-loader',
63
64
{
65
loader: "postcss-loader",
66
options: {
67
postcssOptions: {
68
plugins: [
69
"autoprefixer"
70
]
71
}
72
}
73
},
74
'sass-loader'
75
]
76
},
77
78
/**
79
*
80
* HTML + TEMPLATE
81
*/
82
{
83
test: /.html$/i,
84
loader: 'html-loader',
85
options: {
86
attributes: {
87
list: [
88
{
89
tag: 'img',
90
attribute: 'data-src',
91
type: 'src',
92
},
93
{
94
tag: 'img',
95
attribute: 'data-srcset',
96
type: 'srcset',
97
}
98
],
99
root: './',
100
},
101
},
102
},
103
104
/**
105
*
106
* Image file resolving
107
*/
108
{
109
test: /.(png|jpeg|jpg|gif|svg)$/i,
110
use: {
111
loader: "file-loader",
112
options: {
113
name: 'assets/img/[name].[ext]',
114
publicPath: '../../',
115
esModule: true,
116
}
117
},
118
//type: 'asset/resource',
119
},
120
121
/**
122
*
123
* Fonts Resolving
124
*/
125
{
126
test: /.(ttf|woff)$/i,
127
use: {
128
loader: "file-loader",
129
options: {
130
name: 'assets/fonts/[name].[ext]',
131
publicPath: '../../'
132
}
133
},
134
//type: 'asset/resource',
135
},
136
]
137
},
138
139
plugins: [
140
new MiniCssExtractPlugin({
141
filename: 'static/styles/[name].css',
142
chunkFilename: '[id].css',
143
}),
144
145
new HtmlWebpackPlugin( {
146
filename: 'index.html',
147
template: 'src/index.html',
148
})
149
]
150
}
151
Advertisement
Answer
This is not allowed to have multiple stylesheets into one javascript file. Maybe possible but not with this configuration.