-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack-common-rules.js
59 lines (57 loc) · 1.37 KB
/
webpack-common-rules.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const sass = require('node-sass');
module.exports = {
svelte: {
test: /\.(svelte|html)$/,
exclude: /node_modules/,
use: [
{
loader: 'svelte-loader',
options: {
emitCss: true,
name: 'Luigi',
preprocess: {
style: ({ content, attributes }) => {
if (attributes.type !== 'text/scss') return;
return new Promise((fulfil, reject) => {
sass.render(
{
data: content,
includePaths: ['src'],
sourceMap: true,
outFile: 'x' // this is necessary, but is ignored
},
(err, result) => {
if (err) return reject(err);
fulfil({
code: result.css.toString(),
map: result.map.toString()
});
}
);
});
}
}
}
}
]
},
css: {
test: /\.(sa|sc|c)ss$/,
use: [
{
loader: MiniCssExtractPlugin.loader
},
{
loader: 'css-loader'
}
]
},
urls: {
test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/,
loader: 'url-loader',
options: {
limit: 5000
}
}
};