前端工具gulp的用途和使用方法javascript
在接触前端开始就据说过grunt和gulp是很叼的前端构建工具,但不知道到底有多叼,只是据说能够自动编译less,sass为css,目前尚未使用less和sass,因此也就没有尝试使用grunt和gulp。可是做为一个技术爱好者仍是经不住诱惑,照着网上的教程简单使用了一下,总算是知道有什么用处了,由于都说gulp比grunt更简单好用,就以gulp的使用方法为例来讲明一下。
1.文件合并:关于文件合并不少人存在这样的疑惑,在前端开发中到底该把全部js和css写在一个文件里仍是各个页面分开写,个人建议是开发的时候分开写,上线的时候合并为一个,这样的好处是对于浏览器来讲,不一样页面中相同的文件默认会请求一次缓存下来,其余页面请求相同文件时就直接从缓存中读取,减小文件的网络请求能够提升网页速度,因此文件合并的是颇有必要的。css
2.文件压缩:既然都合并了,何再也不压缩一下呢前端
3.语法检查:这个功能通常会和下面第4条功能配合使用,当文件修改的时候检查是否有语法错误,并在命令行中输出错误信息。java
4.监听文件变化:监听某个目录下文件是否修改,修改的话就执行特定的操做,好比上面几个操做。
以上4点是比较经常使用的功能,更多功能根据本身须要添加gulp
- var gulp = require('gulp');
- var jshint = require('gulp-jshint');//语法检查
- var concat = require('gulp-concat');//合并文件
- var uglify = require('gulp-uglify');//压缩代码
- var rename = require('gulp-rename');//重命名
- // 语法检查
- gulp.task('jshint', function () {
- return gulp.src('public/javascripts/*.js')
- .pipe(jshint())
- .pipe(jshint.reporter('default'));
- });
- // 合并文件以后压缩代码
- gulp.task('minify', function (){
- return gulp.src('public/javascripts/*.js')
- .pipe(concat('all.js'))
- .pipe(gulp.dest('public/javascripts/dist'))
- .pipe(uglify())
- .pipe(rename('all.min.js'))
- .pipe(gulp.dest('public/javascripts/dist'));
- });
- // 监视文件的变化
- gulp.task('watch', function () {
- gulp.watch('public/javascripts/*.js', ['jshint', 'minify']);
- });
- // 注册缺省任务
- gulp.task('default', ['jshint', 'minify', 'watch']);
- // gulp.task('default', ['jshint', 'minify']);
目录结构:浏览器