UNPKG

1.83 kBJavaScriptView Raw
1/* eslint global-require: 0 */
2
3/**
4 * Формирует конфиг для PostCSS.
5 *
6 * @param {Object} mq https://github.com/postcss/postcss-custom-media#extensions
7 * @param {String|Array} path https://github.com/postcss/postcss-import#path
8 * @param {Function} resolve https://github.com/postcss/postcss-import#resolve
9 * @returns {Object} PostCSS конфиг.
10 */
11function getConfig(mq, path = [], resolve) {
12 return {
13 plugins: [
14 require('postcss-omit-import-tilde')(),
15 require('postcss-import')(
16 // Используем Object.assign чтобы не создавать ключ если resolve нет во входящих аргументах.
17 // NB: Object spread здесь не доступен пока есть поддержка Node < 8.3.0.
18 Object.assign({
19 path,
20 plugins: [
21 require('postcss-discard-comments')()
22 ]
23 }, resolve && { resolve })
24 ),
25 require('postcss-url')({
26 url: 'rebase'
27 }),
28 require('postcss-mixins')(),
29 require('postcss-for')(),
30 require('postcss-each')(),
31 require('postcss-custom-media')({
32 extensions: mq
33 }),
34 require('postcss-custom-properties')({
35 preserve: false
36 }),
37 require('postcss-strip-units')(),
38 require('postcss-calc')(),
39 require('postcss-color-function')(),
40 require('postcss-nested')(),
41 require('autoprefixer')({
42 browsers: require('./supporting-browsers')
43 }),
44 require('postcss-inherit')
45 ]
46 };
47}
48
49module.exports = getConfig;