最近捣鼓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)); }); });