使用gulp来构建你的前端自动化工作流

2015年3月16日 · 155 字 · 1 分钟

之前用的Grunt,不过有时候Grunt确实用起来不爽,进来找到一款叫gulp.js的前端构建工具,当然,也是基于node.js的。

安装

npm install gulp --save-dev
npm install del gulp-concat gulp-cssmin gulp-uglify --save-dev

配置

配置gulpfile.js,如果工作目录下没有该文件,请新建gulpfile.js,以下为一个常用的参考代码:

/**
 * @author xialei <xialeistudio@gmail.com>
 */
(function () {
    "use strict";
    /**
     * 加载插件
     * @type {exports}
     */
    var gulp = require('gulp');
    var del = require('del');
    var cssmin = require('gulp-cssmin');
    var concat = require('gulp-concat');
    var uglify = require('gulp-uglify');

    /**
     * 清空目录的命令
     */
    gulp.task('clean', function () {
        del(['build']);
    });
    gulp.task('css', function () {
        /**
         * 加载源代码
         */
        return gulp.src([
            'bower_components/bootstrap/dist/css/bootstrap.min.css',
            'bower_components/font-awesome/css/font-awesome.min.css',
            'css/style.css'
        ])
        /**
         * 压缩css
         */
            .pipe(cssmin())
        /**
         * 连接压缩后的css
         */
            .pipe(concat('style.css'))
        /**
         * 输出到目标目录
         */
            .pipe(gulp.dest('build/css'))
    });
    gulp.task('js', function () {
        return gulp.src([
        /**
         * 加载源代码
         */
            'bower_components/angular/angular.min.js',
            'bower_components/angular-sanitize/angular-sanitize.min.js',
            'js/main.js'])
        /**
         * 压缩Js
         */
            .pipe(uglify())
        /**
         * 合并js
         */
            .pipe(concat('main.js'))
        /**
         * 输出到目标目录
         */
            .pipe(gulp.dest('build/js'))
    });
    gulp.task('img', function () {
        /**
         * 加载源文件
         */
        return gulp.src([
            'img/*.*'
        ])
        /**
         * 输出到目标目录
         */
            .pipe(gulp.dest('build/img'));
    });

    /**
     * 定义默认任务,此任务依赖于 clean,img,css,js,所以在执行
     * 本任务时会按顺序先执行依赖任务
     */
    gulp.task('default', ['clean', 'img', 'css', 'js']);
})();

执行编译

gulp