как передать настройки модулям postcss в gulp, особенно в uncss? - PullRequest
0 голосов
/ 10 октября 2019

Я не могу передать настройки модулю uncss, если я хочу вызвать его в postcss в скрипте gulp.

Вот моя задача gulp:

var gulp = require('gulp');
var postcss = require('gulp-postcss');
var cssvars = require('postcss-simple-vars');
var nested = require('postcss-nested');
var cssImport = require('postcss-import');
var mixins = require('postcss-mixins');
var uncss = require('postcss-uncss');
var autoprefixer = require('autoprefixer');

var autoprefixeroptions = {
        "browsers": [
            "last 3 version",
            "> 1%"
        ]
        }

var uncssoptions =  {
        html: ['dest/index.html'],
        ignore: ['.text-right', '.text-left', '.affix', '.navbar-default.affix',
            /\w\.in/,
            '.fade',
            '.collapse',
            '.collapsing',
            /(#|\.)navbar(\-[a-zA-Z]+)?/,
            /(#|\.)dropdown(\-[a-zA-Z]+)?/,
            /(#|\.)(open)/,
            '.modal',
            '.modal.fade.in',
            '.modal-dialog',
            '.modal-document',
            '.modal-scrollbar-measure',
            '.modal-backdrop.fade',
            '.modal-backdrop.in',
            '.modal.fade.modal-dialog',
            '.modal.in.modal-dialog',
            '.modal-open',
            '.in',
            '.modal-backdrop'
        ]
        };


gulp.task('styles', function() {
    var plugins = [
        cssImport,
        mixins,
        cssvars,
        nested,
        uncss(uncssoptions),
        autoprefixer(autoprefixeroptions)
        ];
    return gulp.src('./src/css/*.css')
        .pipe(postcss(plugins))
        .pipe(gulp.dest('./dest/css'));

})

КогдаЯ пытаюсь это, я получаю во время выполнения (когда я изменяю что-то в файле css) следующее сообщение об ошибке:


[Browsersync] Serving files from: dest
[12:20:39] Starting 'styles'...
[12:20:39] 'styles' errored after 295 μs
[12:20:39] TypeError: uncss is not a function
    at Gulp.<anonymous> (C:\Projects\test\gulp\tasks\styles.js:50:3)
    at module.exports (C:\Projects\test\node_modules\orchestrator\lib\runTask.js:34:7)
    at Gulp.Orchestrator._runTask (C:\Projects\test\node_modules\orchestrator\index.js:273:3)
    at Gulp.Orchestrator._runStep (C:\Projects\test\node_modules\orchestrator\index.js:214:10)
    at Gulp.Orchestrator.start (C:\Projects\test\node_modules\orchestrator\index.js:134:8)
    at C:\Projects\test\gulp\tasks\watch.js:19:10
    at write (C:\Projects\test\node_modules\gulp-watch\index.js:147:3)
    at C:\Projects\test\node_modules\gulp-watch\index.js:130:5

Итак, как еще настроить uncss в файле gulp, когда я вызываю его какмодуль postcss?

Спасибо

Кай

1 Ответ

0 голосов
/ 10 октября 2019

Хорошо, я решил это сам. Я забыл использовать uncss в файле package.json вместе с postcss-uncss. Теперь это работает.

Надеюсь, вам понравился этот вклад. Во всех своих поисках я не смог найти этот ответ в Интернете.

Кстати, этот пример показывает, как использовать uncss в Bootstrap.

...