forked from egoist/poi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
css-loaders.js
45 lines (43 loc) · 1.38 KB
/
css-loaders.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
'use strict'
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const getVueLoaders = require('./vue-loaders')
module.exports = function (webpackConfig, options) {
const cssLoader = options.cssModules ?
'css-loader?-autoprefixer&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]' :
'css-loader?-autoprefixer'
if (options.dev || (options.extract === false)) {
// add preprocessors support for standalone css files
getVueLoaders.cssProcessors.forEach(processor => {
let loaders
if (processor.loader === '') {
loaders = ['postcss-loader']
} else {
loaders = ['postcss-loader', processor.loader]
}
webpackConfig.module.rules.push(
{
test: processor.test,
loaders: ['style-loader', cssLoader].concat(loaders)
}
)
})
} else {
// add preprocessors support for standalone css files
// with extracting css
getVueLoaders.cssProcessors.forEach(processor => {
let loaders
if (processor.loader === '') {
loaders = ['postcss-loader']
} else {
loaders = ['postcss-loader', processor.loader]
}
webpackConfig.module.rules.push({
test: processor.test,
loader: ExtractTextPlugin.extract({
loader: [cssLoader].concat(loaders),
fallbackLoader: 'style-loader'
})
})
})
}
}