1

如果我想在 gulp 脚本中的 postcss 中调用它,我无法将设置传递给 uncss 模块。

这是我的吞咽任务:

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

那么,当我将它称为 postcss 模块时,我还能如何在 gulp 文件中设置 uncss?

谢谢

4

1 回答 1

1

好的,我自己解决了。我忘了在 package.json 文件中使用 uncss 和 postcss-uncss。现在它起作用了。

我希望你喜欢这个贡献。在我所有的谷歌搜索中,我都无法在网上找到这个答案。

顺便说一句,这个示例展示了如何在 Bootstrap 上使用 uncss。

于 2019-10-10T10:52:13.223 回答