前端自动化构建工具gulp记录

什么是gulp

答:Gulp 是一款基于任务的设计模式的自动化工具,通过插件的配合解决全套前端解决方案,如静态页面压缩、图片压缩、JS合并、SASS同步编译并压缩CSS、服务器控制客户端同步刷新。。


为什么要用gulp?

1、js和css属于静态文件,很多时候浏览器存在缓存机制,为了避免缓存带来的误会,可以利用构建工具,给每一个静态文件添加一个版本号,这样浏览器就会认为是新的文件,就不存在缓存机制。

2、性能优化:文件合并,减少http请求;文件压缩,减少文件体积,加快下载速度;

3、效率提升:自动添加CSS3的vendor前缀;代码分析检查改正;在使用MVC和MVVM的框架后,可在提交之前,使用gulp自动跑一遍单元测试;


怎么用?

1、安装nodejs

首先,安装gulp之前,先安装nodejs环境,因为gulp是基于nodejs的前端构建工具

查看安装版本

2、全局安装gulp

如果我们的电脑是第一次使用gulp,先全局安装一遍

1 $ npm install gulp -g

查看是否安装成功gulp -v,出现版本号即为正确安装。

3、本地项目gulp安装

先通过cd命令行进入到本地项目目录

1 npm install —-save-dev gulp

此时文件下多了个node_modules的文件夹

在项目根目录下创建gulpfile.js文件 ,然后安装插件

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-cache 图片缓存,只有图片替换了才压缩 gulp-livereload 自动刷新页面

  • 更具需要选择,更多插件可以看这里gulpjs.com/plugins/
1 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

配置gulpfile.js文件



/**
 * 组件安装
 * 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
 */
// 引入 gulp及组件
var gulp    = require(‘gulp‘),                 //基础库
    imagemin = require(‘gulp-imagemin‘),       //图片压缩
    sass = require(‘gulp-ruby-sass‘),          //sass
    autoprefixer = require(‘gulp-autoprefixer‘),//自动添加css前缀
    minifycss = require(‘gulp-minify-css‘),    //css压缩
    jshint = require(‘gulp-jshint‘),           //js检查
    uglify  = require(‘gulp-uglify‘),          //js压缩
    rename = require(‘gulp-rename‘),           //重命名
    concat  = require(‘gulp-concat‘),          //合并文件
    cache = require(‘gulp-cache‘),             //只有图片替换了才压缩(gulp-cache)
    clean = require(‘gulp-clean‘);            //清空文件夹

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

    return gulp.src(htmlSrc)
        .pipe(gulp.dest(htmlDst))
});

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

    return  sass(cssSrc, { style: ‘expanded‘ })
        .pipe(gulp.dest(cssDst))
        .pipe(rename({ suffix: ‘.min‘ }))
        .pipe(minifycss())
        .pipe(gulp.dest(cssDst));
});

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

// 创建js压缩任务
gulp.task(‘js‘, function () {
    var jsSrc = ‘./src/js/*.js‘,
        jsDst =‘./dist/js/‘;

   return gulp.src(jsSrc)
       .pipe(concat(‘main.js‘))
       .pipe(gulp.dest(jsDst))
       .pipe(rename({ suffix: ‘.min‘ }))
       .pipe(uglify())
       .pipe(gulp.dest(jsDst));
});

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

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

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

   // 监听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‘);
    });

});

  

4、运行:

可以单独运行某一个任务

gulp default
gulp watch

也可以运行整个任务

gulp 

项目目录结构

gulp基础语法

gulp通过gulpfile文件来完成相关任务,因此项目中必须包含gulpfile.js

gulp有五个方法:src、dest、task、run、watch
src和dest:指定源文件和处理后文件的路径
watch:用来监听文件的变化
task:指定任务
run:执行任务

遇到编译问题注意看官方文档

参考资料

1.http://www.dbpoo.com/getting-started-with-gulp/

2.http://www.ydcss.com/archives/18#lesson5

3.http://www.cnblogs.com/kaixinbocai/p/4970518.html

4.http://blog.wangdaodao.com/2015-04-21/hello-gulp.html

5.http://www.miaoyueyue.com/archives/997.html

官方文档:https://www.npmjs.com/package/gulp-ruby-sass

时间: 2024-10-10 13:54:37

前端自动化构建工具gulp记录的相关文章

web 环境搭建00前端自动化构建工具(gulp)

web 环境搭建----前端自动化构建工具(gulp): 1----先下载安装node.js 2----然后在node.js命令行安装:npm install gulp -g (全局下载安装gulp插件) 3----然后进入到项目文件夹(命令cd 文件夹名),在项目文件夹中安装依赖文件:npm install gulp --save-dev (根据依赖文件下载gulp插件) 4----在项目文件夹目录下初始化:npm init (初始化文件) {初始化文件后项目中会出现packgae.json文

前端自动化构建工具——gulp

gulp是基于流的前端自动化构建工具. 一.环境配置 gulp是基于nodejs的,所以没有 nodejs 环境的要先去安装好 然后给系统配上gulp环境 npm install -g gulp 再到某一工程目录下 跟grunt一般,也是需要package.json包依赖文件和一个入口文件 gulpfile.js(其他名字识别不了) 然后就类似的先装上gulp npm install gulp --save-dev 最基本的使用方式是这样:(使用jshint插件校验js代码) var jshin

前端自动化构建工具gulp使用

1. 全局安装 gulp: $ npm install --global gulp 2. 作为项目的开发依赖(devDependencies)安装: $ npm install --save-dev gulp 3. 在项目根目录下创建一个名为 package.json 的文件: 附上本人项目基本配置 { "devDependencies": { "concat": "0.0.1-security", "gulp": "

前端自动化构建工具gulp(二)

创建一个真实的例子: 创建一个项目,结构如图 gulp的使用方法通常是这样的 gulp.task('task-name', function () { return gulp.src('source-files') // source-files是任务的入口文件路径 .pipe(aGulpPlugin()) // 调用插件 .pipe(gulp.dest('destination')) //destination执行任务输出文件路径 }) 我们将使用gulp-sass插件来编译sass: 1.安

前端自动化构建工具

全局安装是把包安装在Node安装目录下的node_modules文件夹中,一般在 \Users\用户名\AppData\Roaming\ 目录下,可以使用npm root -g查看全局安装目录 本地(局部)安装是把包安装在指定项目(要在指定的根目录下输入命令)的node_modules文件夹下(若没有,会自动创建一个node_modules文件夹) 具体区别,推荐博文:  全局安装和本地(局部)安装的区别 本地安装可以让每个项目拥有独立的包,不受全局包的影响,方便项目的移动.复制.打包等,保证不

前端自动化构建工具Webpack开发模式入门指南

Webpack Webpack是时下最流行的模块打包器 它的主要任务就是将各种格式的JavaScript代码,甚至是静态文件 进行分析.压缩.合并.打包,最后生成浏览器支持的代码 特点: 代码拆分方案:webpack可以将应用代码拆分成多个块,每个块包含一个或多个模块,块可以按需异步加载,极大提升大规模单页应用的初始加载速度 智能的静态分析:webpack的智能解析器几乎可以处理任何第三方库 Loader加载器:webpack只能处理原生js模块,但是loader可以将各种资源转换为js模块 p

gulp 前端自动化构建工具

gulp是基于nodejs的自动化构建工具, 可自动化完成js css sass less html image的测试.检查.合并.压缩.格式化.浏览器自动刷新.部署文件生成.监听文件. 1:基于nodejs先装nodejs(.msi) 2:命令行装npm,npm是nodejs的包管理工具,对node插件进行安装.卸载等 npm install XX -g  安装XX插件 全局安装 --save 将保存配置保存至package.json(package.json把安装插件信息保存到此,可供其他开

前端自动化构建工具-yoman浅谈

如今随着前端技术的飞速发展,前端项目也变得越来越复杂.快速的搭建一个集成多种工具和框架的复杂前端项目也越来越成为一种需求.当然如果你要自己从0开始完全自己diy,绝对可以,只不过需要耗费一些不少的时间.既然如此要是有自动化的项目构建工具,帮你生成各种必须的配置项,你只需愉快的写代码该多方便呀.嗯,是的这样的工具或者说脚手架确实是有的,就是下面要提到的eoman.来吧,一起看一下如何使用这个工具让你的项目秒建吧. 初识yeoman yeoman是什么 yeoman是Google领头开发的一个前端构

自动化构建工具----gulp

gulp是什么? Gulp是基于node的一个自动化构建工具,开发者可以使用它构建自动化工作流程(前端集成开发环境). gulp基于流的操作. 常见构建工具:Grunt,gulp,webpack,FIS.. gulp有什么用? 网页自动刷新,CSS预处理,代码检测,图片压缩等功能,只需要简单的命令行就可以全部完成.使用它, 可以简化工作,让你把重点放在功能的开发上,同时减少人为失误,提高开发的效率和质量. gulp怎么用? .以[email protected]为例 1.初始化npm npm i