最近捣鼓gulp自动化工具,使用了gulp-autoprefixer插件来实现添加浏览器前缀,结果运行起来发现报了一堆乱码的错误
(找不到报错截图了,大家脑补一下)
下面是我的gulp配置代码:
//自动编译LESS
gulp.task('watchLess', function () {
gulp.watch(lessUrl + '*.less', function(event) {
var paths = watchPath(event , lessUrl , cssUrl);
//打印出日志
console.log(paths.srcFilename + ' has ' + event.type);
gulp.src([lessUrl + paths.srcFilename , '!'+lessUrl+'base/*.less'])
//自动加浏览器前缀
.pipe(autoprefixer({
//兼容哪些版本浏览器
browsers: ['last 2 versions','ie >= 9','Firefox >= 10','last 3 Safari versions'],
//是否美化属性值 默认:true 像这样:
//-webkit-transform: rotate(45deg);
// transform: rotate(45deg);
cascade: true,
//是否去掉不必要的前缀 默认:true
remove:true
}))
//编译less
.pipe(less())
//压缩css
.pipe(minifyCss())
//输出到路径
.pipe(gulp.dest(cssUrl));
});
});
报错的原因就是autoprefixer插件和编译less插件的顺序放错了(/ □ \),应该是先编译less再添加浏览器前缀,以下是正确的代码:
//自动编译LESS
gulp.task('watchLess', function () {
gulp.watch(lessUrl + '*.less', function(event) {
var paths = watchPath(event , lessUrl , cssUrl);
//打印出日志
console.log(paths.srcFilename + ' has ' + event.type);
gulp.src([lessUrl + paths.srcFilename , '!'+lessUrl+'base/*.less'])
//编译less
.pipe(less())
//自动加浏览器前缀
.pipe(autoprefixer({
//兼容哪些版本浏览器
browsers: ['last 2 versions','ie >= 9','Firefox >= 10','last 3 Safari versions'],
//是否美化属性值 默认:true 像这样:
//-webkit-transform: rotate(45deg);
// transform: rotate(45deg);
cascade: true,
//是否去掉不必要的前缀 默认:true
remove:true
}))
//压缩css
.pipe(minifyCss())
//输出到路径
.pipe(gulp.dest(cssUrl));
});
});