gulp 建立一个简单的自动化

Posted 快乐~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gulp 建立一个简单的自动化相关的知识,希望对你有一定的参考价值。

前端项目需要的功能: 1、图片(压缩图片支持jpg、png、gif) 2、样式 (支持sass 同时支持合并、压缩、重命名) 3、javascript (检查、合并、压缩、重命名) 4、html (压缩) 5、客户端同步刷新显示修改 6、构建项目前清除发布环境下的文件(保持发布环境的清洁)

通过gulp plugins,寻找对于的gulp组件 gulp-imagemin: 压缩图片 gulp-ruby-sass: 支持sass gulp-minify-css: 压缩css gulp-jshint: 检查js gulp-uglify: 压缩js gulp-concat: 合并文件 gulp-rename: 重命名文件 gulp-htmlmin: 压缩html gulp-clean: 清空文件夹 gulp-livereload: 服务器控制客户端同步刷新(需配合chrome插件LiveReload及tiny-lr)

 

一、安装

node先装好:

npm install -g gulp   全局安装

npm install gulp --save-dev

npm install gulp-util gulp-imagemin gulp-ruby-sass gulp-minify-css gulp-jshint gulp-uglify gulp-rename gulp-concat gulp-clean gulp-livereload tiny-lr --save-dev

  最常用的文件结构:

project(项目名称)
|–.git 通过git管理项目会生成这个文件夹
|–node_modules 组件目录
|–dist 发布环境
    |–css 样式文件(style.css style.min.css)
    |–images 图片文件(压缩图片)
    |–js js文件(main.js main.min.js)
    |–index.html 静态文件(压缩html)
|–src 生产环境
    |–sass sass文件
    |–images 图片文件
    |–js js文件
    |–index.html 静态文件
|–.jshintrc jshint配置文件
|–gulpfile.js gulp任务文件
// 引入 gulp及组件
var gulp    = require(gulp),                 //基础库
    imagemin = require(gulp-imagemin),       //图片压缩
    sass = require(gulp-ruby-sass),          //sass
    minifycss = require(gulp-minify-css),    //css压缩
    jshint = require(gulp-jshint),           //js检查
    uglify  = require(gulp-uglify),          //js压缩
    rename = require(gulp-rename),           //重命名
    concat  = require(gulp-concat),          //合并文件
    clean = require(gulp-clean),             //清空文件夹
    tinylr = require(tiny-lr),               //livereload
    server = tinylr(),
    port = 35729,
    livereload = require(gulp-livereload);   //livereload

// HTML处理
gulp.task(html, function() {
    var htmlSrc = ./src/*.html,
        htmlDst = ./dist/;

    gulp.src(htmlSrc)
        .pipe(livereload(server))
        .pipe(gulp.dest(htmlDst))
});

// 样式处理
gulp.task(css, function () {
    var cssSrc = ./src/scss/*.scss,
        cssDst = ./dist/css;

    gulp.src(cssSrc)
        .pipe(sass({ style: expanded}))
        .pipe(gulp.dest(cssDst))
        .pipe(rename({ suffix: .min }))
        .pipe(minifycss())
        .pipe(livereload(server))
        .pipe(gulp.dest(cssDst));
});

// 图片处理
gulp.task(images, function(){
    var imgSrc = ./src/images/**/*,
        imgDst = ./dist/images;
    gulp.src(imgSrc)
        .pipe(imagemin())
        .pipe(livereload(server))
        .pipe(gulp.dest(imgDst));
})

// js处理
gulp.task(js, function () {
    var jsSrc = ./src/js/*.js,
        jsDst =./dist/js;

    gulp.src(jsSrc)
        .pipe(jshint(.jshintrc))
        .pipe(jshint.reporter(default))
        .pipe(concat(main.js))
        .pipe(gulp.dest(jsDst))
        .pipe(rename({ suffix: .min }))
        .pipe(uglify())
        .pipe(livereload(server))
        .pipe(gulp.dest(jsDst));
});

// 清空图片、样式、js
gulp.task(clean, function() {
    gulp.src([./dist/css, ./dist/js, ./dist/images], {read: false})
        .pipe(clean());
});

// 默认任务 清空图片、样式、js并重建 运行语句 gulp
gulp.task(default, [clean], function(){
    gulp.start(html,css,images,js);
});

// 监听任务 运行语句 gulp watch
gulp.task(watch,function(){

    server.listen(port, function(err){
        if (err) {
            return console.log(err);
        }

        // 监听html
        gulp.watch(./src/*.html, function(event){
            gulp.run(html);
        })

        // 监听css
        gulp.watch(./src/scss/*.scss, function(){
            gulp.run(css);
        });

        // 监听images
        gulp.watch(./src/images/**/*, function(){
            gulp.run(images);
        });

        // 监听js
        gulp.watch(./src/js/*.js, function(){
            gulp.run(js);
        });

    });
});

 

LiveReload配置

1、安装Chrome LiveReload 2、通过npm安装http-server ,快速建立http服务

npm install http-server -g

3、通过cd找到发布环境目录dist 4、运行http-server,默认端口是8080 5、访问路径localhost:8080 6、再打开一个cmd,通过cd找到项目路径执行gulp,清空发布环境并初始化 7、执行监控 gulp 8、点击chrome上的LiveReload插件,空心变成实心即关联上,你可以修改css、js、html即时会显示到页面中。

以上是关于gulp 建立一个简单的自动化的主要内容,如果未能解决你的问题,请参考以下文章

gulp安装教程(简单的前端自动化教程)

自动化构建工具—gulp的用法简单总结

一个简单的gulp工作流项目

gulp简单安装和入门(适用刚接触gulp的同学)

简单理解gulp和webpack的区别

自动化构建工具gulp简单介绍及使用