0

less-plugin-autoprefixer插件自述文件说,要使用该插件,您将其包含在您的 gulpfile.js 中:

var LessPluginAutoPrefix = require('less-plugin-autoprefix'),
    autoprefixPlugin = new LessPluginAutoPrefix({browsers: ["last 2 versions"]});
less.render(lessString, { plugins: [autoprefixPlugin] })
  .then(

他们要我在这里放一个开放式回调函数吗?我很困惑。我试着只包括第一部分:

var LessPluginAutoPrefix = require('less-plugin-autoprefix'),
        autoprefixPlugin = new LessPluginAutoPrefix({browsers: ["last 2 versions"]});

然后像这样调用插件:

gulp.task('less', ['clean'], function() {
    return gulp.src('app.less')
        .pipe(less({
            includePaths: ['less'],
            plugins: [autoprefixPlugin] //***//
        }))
        .pipe(cssmin({keepSpecialComments: 0}))
        .pipe(rename('app.full.min.css'))
        .pipe(gulp.dest('../server/dist/'))
        .pipe(filter('../server/dist/**/*.css'))
        .pipe(reload({stream:true}));
});

但我收到以下错误:

TypeError: Object #<Autoprefixer> has no method 'on'
    at DestroyableTransform.Stream.pipe (stream.js:65:8)
    at Gulp.<anonymous> (/Users/himmel/Sites/matt-mcdaniel.com/client/gulpfile.js:131:10)

我已经包含了必要的依赖项,autoprefixer-core我在这里缺少什么?

4

1 回答 1

1

由于包含以下内容,该错误是由于未知原因引发的:

var autoprefixer = require('autoprefixer-core');

删除它后,没有抛出任何错误。

此外,包括:

var LessPluginAutoPrefix = require('less-plugin-autoprefix'),
        autoprefixPlugin = new LessPluginAutoPrefix({browsers: ["last 2 versions"]});

gulp.task('less', ['clean'], function() {
    return gulp.src('app.less')
        .pipe(less({
            includePaths: ['less'],
            plugins: [autoprefixPlugin] //***//
        }))
        .pipe(cssmin({keepSpecialComments: 0}))
        .pipe(rename('app.full.min.css'))
        .pipe(gulp.dest('../server/dist/'))
        .pipe(filter('../server/dist/**/*.css'))
        .pipe(reload({stream:true}));
});

足以让我的 gulpfile 在构建时自动添加前缀,但BrowserSync在开发过程中没有自动添加前缀。

于 2015-05-14T00:53:09.243 回答