前端构建工具Gulp

1 篇文章 0 订阅

gulp

Gulp是构建工具,如今最流行的两个构建工具是Gulp和Grunt,主要区别是你如何使用他们构建自动化工作流。与Grunt相比,Gulp更加简洁,执行效率更高

  • 搭建web服务器
  • 文件保存时自动重载浏览器
  • 使用预处理器如Sass、LESS
  • 优化资源,比如压缩CSS、JavaScript、压缩图片
  • 甚至可以搭建一个静态页面生成器
安装

npm install gulp -g

####创建Gulp项目

  1. 新建project文件夹
  2. npm init
  3. npm install gulp --save-dev通知计算机在package.json中添加gulp依赖
  4. 在根目录下创建gulpfile.js文件 **var gulp = require(‘gulp’);**告知Node去node_modules中查找gulp包,找到之后会赋值给gulp变量,进行使用。

gulp.task(‘task-name’, function() {
// Stuff here
});
例如
gulp.task(‘hello’, function() {
console.log(‘Hello World!’);
});

  1. 命令行中执行gulp task-name,将运行该任务
Gulp执行预处理

编译Sass

  1. 安装:npm install gulp-sass --save-dev
  2. 在gulpfile中引入插件,用变量保存

var gulp = require(‘gulp’);
// Requires the gulp-sass plugin
var sass = require(‘gulp-sass’);

  1. 使用,需提供源文件和输出位置

gulp.task(‘sass’, function(){
return gulp.src(‘source-files’)
.pipe(sass()) // Using gulp-sass
.pipe(gulp.dest(‘destination’))
});

  1. 创建app/scss文件夹,里面有个styles.scss文件
  2. 生成的CSS文件保存到app/scss

gulp.task(‘sass’, function(){
return gulp.src(‘app/scss/styles.scss’)
.pipe(sass()) // Converts Sass to CSS with gulp-sass
.pipe(gulp.dest(‘app/css’))
});

####监听Sass文件
watch方法

gulp.watch('files-to-watch', ['tasks', 'to', 'run']);
例如
gulp.watch('app/scss/**/*.scss', ['sass']);

变成一个任务

gulp.task('watch', function(){
  gulp.watch('app/scss/**/*.scss', ['sass']);
  // Other watchers
})

有了监听,每次修改文件,Gulp都将自动为我们执行任务
刷新浏览器,不用手动按Command + R

使用Browser Sync自动刷新

搭建简单的本地服务器并能实时刷新浏览器

  1. 安装:npm install browser-sync --save-dev
  2. 引入:var browserSync = require(‘browser-sync’);
  3. 使用:
gulp.task('browserSync', function() {
  browserSync({
    server: {
      baseDir: 'app'
    },
  })
})
gulp.task('sass', function() {
  return gulp.src('app/scss/**/*.scss') // Gets all files ending with .scss in app/scss
    .pipe(sass())
    .pipe(gulp.dest('app/css'))
    .pipe(browserSync.reload({
      stream: true
    }))
});

####优化CSS和JS文件
压缩和拼接。减少体积和HTTP次数。

合并

问题:很难按照正确的顺序合并文件
gulp-useref
gulp-useref会将多个文件拼接成单一文件,并输出到相应目录

  1. 安装gulp-useref

npm install gulp-useref --save-dev

  1. 引用
    var useref = require(‘gulp-useref’);
  2. 使用:新版的gulp-useref已经不需要写多余的useref.assets了
<!--build:js js/main.min.js -->
<script src="js/lib/a-library.js"></script>
<script src="js/lib/another-library.js"></script>
<script src="js/main.js"></script>
<!-- endbuild -->

gulp.task('useref', function(){
  return gulp.src('app/*.html')
        .pipe(useref())
        .pipe(gulp.dest('dist'));
});
合并三个script标签成一个文件,并保存到dist/js/main.min.js。
压缩

gulp-uglify插件

  1. 安装

npm install gulp-uglify --save-dev
2.使用

var uglify = require(‘gulp-uglify’);
gulp.task(‘useref’, function(){
return gulp.src(‘app/*.html’)
.pipe(uglify()) // Uglifies Javascript files
.pipe(useref())
.pipe(gulp.dest(‘dist’))
});

  • 使用gulp-minify-css压缩css

npm install gulp-if gulp-minify-css --save-dev

  • 使用gulp-imagemin插件优化图片

npm install gulp-imagemin --save-dev
引入
var imagemin = require(‘gulp-imagemin’);
gulp.task(‘images’, function(){
return gulp.src(‘app/images/**/*.+(png|jpg|gif|svg)’)
.pipe(imagemin())
.pipe(gulp.dest(‘dist/images’))
});

  • 使用 gulp-cache 插件可以减少重复压缩

npm install gulp-cache --save-dev

清理生成文件
  1. 安装del

npm install del --save-dev

  1. 引入&使用

var del = require(‘del’);
gulp.task(‘clean’, function() {
del(‘dist’);
});

###总结

  1. 在开发过程中监听文件刷新浏览器
  2. 优化CSS、JS、压缩图片,把资源从APP移动到dist

开发过程:

使用gulp生成sprites图片和样式表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值