-
Notifications
You must be signed in to change notification settings - Fork 0
/
postcss.config.js
45 lines (37 loc) · 920 Bytes
/
postcss.config.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
/* eslint
import/no-extraneous-dependencies: 0
*/
const cssModules = require('postcss-modules');
const cssNext = require('postcss-cssnext');
const cssImport = require('postcss-import');
const cssNano = require('cssnano');
const scss = require('postcss-scss');
module.exports = function postcssConfig(ctx) {
const debug = ctx.env !== 'production';
const map = debug || { inline: false };
const cssDict = ctx.options.modules;
const plugins = [cssImport(), cssNext()];
if (cssDict) {
plugins.push(
cssModules({
generateScopedName: '[local]___[name]',
getJSON(filename, json) {
if (filename in cssDict === false) cssDict[filename] = json;
},
}),
);
}
if (debug === false) {
plugins.push(
cssNano({
autoprefixer: false,
mergeIdents: true,
}),
);
}
return {
parser: scss,
map,
plugins,
};
};