Nodejs不仅把Javascript带到了服务端,也在前端掀起了自动化的浪潮,推动了前端工作的历史性巨变,今天和大家一起学习前端自动化的神器---Gulp;
说起自动化,自然少不了Grunt,这位前辈目前社区完善,拥有几千个现成插件,install下来参考文档即可配置使用(参见: 前端自动化之利剑——Grunt );而Gulp的出现,希望取其精华并取代Grunt,成为最流行的Javascript构建工具,Gulp采用代码优于配置的策略,让简单的事继续简单,让复杂的事变得可管理;
与Grunt的不同:
使用Gulp的优势就是利用流的方式进行文件的处理,通过管道将多个任务和操作连接起来,因此只有一次I/O的过程,流程更清晰,更纯粹。Gulp去除了中间文件,只将最后的输出写入磁盘,整个过程因此变得更快。
下面在根目录下新建一个Gulpfile.js,我们将完成以下任务:
cmd进入项目根目录,安装所需要的Gulp及其插件:
Gulp遵循Commonjs规范,所以你可以像写Nodejs程序一样把插件们require进来;
接着完成我们要完成的任务:
//图片的无损压缩 gulp.task('imagemin',function() { return gulp.src('./dist/images/**.*') .pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true }))) .pipe(gulp.dest('./dist/images')); }); //js的压缩合并 gulp.task('uglify', function() { gulp.src('./js/*.js') .pipe(concat('all.js')) .pipe(gulp.dest('./dist')) .pipe(rename('all.min.js')) .pipe(uglify()) .pipe(gulp.dest('./dist')); }); //sass的编译压缩 gulp.task('sass',function() { return sass('./dist/css/*.scss',{ style:'compressed', loadPath:[ 'common/vars', 'mixins/mixin', 'mixins/css3', 'common/reset', 'common/com-class', 'placeholders/placeholder' ] }) .pipe(gulp.dest('./dist/min')); }); //实时监听任务 gulp.task('watch',function() { gulp.watch('./dist/css/*.scss',['sass']); gulp.watch('./dist/react/main4.js',['uglify']); })
是不是很酷!各插件详细配置,请自行github,同学们加油!