-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpostcss.config.js
More file actions
59 lines (57 loc) · 1.21 KB
/
Copy pathpostcss.config.js
File metadata and controls
59 lines (57 loc) · 1.21 KB
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
/**
* Strip charset declarations from imported CSS files.
*
* Bundled CSS is emitted as UTF-8, and some vendor CSS ships a banner before
* the charset at-rule, which makes postcss-import warn before bundling.
*
* @returns {object} A PostCSS plugin.
*/
const stripImportedCharset = () => ({
postcssPlugin: 'strip-imported-charset',
AtRule: {
charset: (atRule) => atRule.remove(),
},
});
/**
* Exports the PostCSS configuration.
*
* @param {object} context The PostCSS loader context.
* @param {string} context.env The current build environment.
*
* @returns {object} PostCSS options.
*/
module.exports = ({ env }) => ({
plugins: {
'postcss-import': {
plugins: [stripImportedCharset],
},
'postcss-preset-env': {
stage: 0,
autoprefixer: {
grid: true,
},
},
// Minify style on production using cssano.
cssnano:
env === 'production'
? {
preset: [
'default',
{
autoprefixer: false,
calc: {
precision: 8,
},
convertValues: true,
discardComments: {
removeAll: true,
},
mergeLonghand: false,
zindex: false,
},
],
}
: false,
},
});
stripImportedCharset.postcss = true;