gulp

作者: 向往世界的蜗牛 | 来源:发表于2019-03-17 14:04 被阅读0次

安装

1 全局安装

npm install gulp -g 全局安装

2 项目文件夹下安装,作为当前项目的开发依赖

npm install gulp -s -d

3 项目文件下创建gulpfile.js文件

var gulp = require('gulp');
gulp.task('default',function(){
    console.log('函数内为执行的任务')
})

4 运行 gulp

API

gulp.src(globs[, options])

gulp.src('views/libs/**/*.js') 获取要处理的文件路径转化为一种数据流
.pipe(jade())  .pipe接受处理的数据流 .pipe()传入一个函数(方法)处理上边的数据流
.pipe(gulp.dest('build/minified_templates'));定义处理后的文件路径

gulp.task(name[,deps],fn)

deps 类型 Array
一个包含任务列表的数组,这些任务会在你当前任务运行之前完成。
gulp.task('mytask', ['array', 'of', 'task', 'names'],function(){
    
})
gulp.task('somename',function(){
    
})
somename 函数名
执行gulp somename 执行函数里代码

gulp任务异步执行

var gulp = require('gulp');
定义任务one 返回一个参数cd 系统判断他是什么时候执行完成的
gulp.task('one',function(cd){
  //其他任务代码
    cd(err);
    如果是err 不是null 或者undefined则会停止执行,这样代表任务执行失败了
})
任务two,必须在one任务完成之后执行
gulp.task('two',['one'],function(){
    
})
在数组中的one two 执行完成后执行default任务
gulp.task('default',['one','two'],function(){
    
})

gulp.watch文件改动监视

gulp.watch('views/libs/**/*.js'function(){
    处理文件的方法
})

实例
gulp.task('watch',function(){
    gulp.watch('views/libs/**/*.scss',['sass']);
    gulp.watch('./index.html',['sass']);
})
gulp.task('views/libs/**/*.js',function(event){
    console.log('File' +event.path +'was'+event.type+',runing tasks...');
})

参数标记

gulp -v 版本号
 -T 或者 --tasks显示所指定的gulpfile的task依赖树
 --silent 禁止所有的gulp日志

插件

gulp-uglify(js压缩)

安装
1  npm install --save-dev gulp-uglify(丑化)

var uglify = require('gulp-uglify');
gulp.task('compass',function(){
    gulp.src('js/**/*.js','!js/*.min.js') //获取文件 排除.min.js文件
    .pipe(uglify())
    .pipe(gulp.dest('javascript/'));  //输出文件
})

gulp-minigy-css(css压缩)

1 安装
npm install --save-dev gulp-minify-css
2 
var minigy = require('gulp-minify-css');
gulp.task('cssmini',function(){
    gulp.src(['css/*.css','!css/*.min.css'])//压缩文件
        .pipe(minify());
        .pipe(gulp.dest('buildcss/'))
})

gulp-minify-html(压缩html)

1 安装
npm install --save-dev gulp-minify-html
2 
var minihtml = require('gulp-minif-html');
gulp.html('minihtml',function(){
    gulp.src('*.html');
    .pipe(minihtml());
    .pipe(gulp.dest('minihtml'));
})

gulp-jshint (js代码检查)

1 安装 npm install --save-dev gulp-jshint
2 
var jshint = require('gulp-jshint');
gulp.task('jshint',function(){
    gulp.src('libs/**/*.js');
    .pipe(jshint());
    .pipe(gulp.reporter());
})

gulp-concat(文件合并)

var concat = require('gulp-concat');
gulp.task('concat',function(){
    gulp.src('js/*.js'); //要合并的文件
    .pipe(concat('all.js'))//合并后的文件名为"all.js"
    .pipe(gulp.dest('dest/js'));
})

gulp-less(编译Less)

var less = require('gulp-less');
gulp.task('less',function(){
    gulp.src('less/*.less');
    .pipe(less());
    .pipe(gulp.src('dist/css'));
})

gulp-sass(编译sass)

var sass = require('gulp-sass');
gulp.task('sass',function(){
    gulp.src('libs/**/*.sass');
    .pipe(sass());
    .pipe(gulp.dest('dist/css'));
})

gulp-imagemin(压缩图片)

imagemin-pngquant(压缩png)

1 安装
npm install --save-dev gulp-imagemin
npm install --save-dev imageming-pngquant

2 
var imagemin = require('gulp-imagemin');
var pngquant = require('imagemin-pngquant');

gulp.task('default',function(){
    return gulp.src('src/imgaes/*')
    .pipe(imagemin({
        progressive:true,
        use:[pngquant()]//使用pngquant来压缩图
    }))
    .pipe(gulp.dest('dist/image'));
})

gulp-livereload(自动刷新)

var gulp =require('gulp');
    less =require('gulp-less');
    livereload = reuqire('gulp-livereload');
gulp.task('less',function(){
    gulp.src('less/*.less');
    .pipe(gulp.dest('css'));
    .pipe(livereload());
})    
gulp.task('watch',function(){
    livereload.listen(); //调用listen()方法
    gulp.watch('less/*.less',['less']);//监听目录下的文件,若文件发变化,则调用less任务
})

gulp-babel(es6变异成es5)

 1 npm install --save-dev gulp-babel
 
 var babel = require('gulp-babel');
 gulp.task('default',function(){
     reutrn gulp.src("src/**/*.js")
     .pipe(babel());
     .pipe(gulp.dest('dist'))
 })

gulp-open(打开浏览器)

1 安装 npm install --save-dev gulp-open
var gulpOpen = require('gulp-open');
gulp.task('open',function(done){
    gulp.src('')
    .pipe(gulpOpen({
        app:brower, //定义本地app
        uri:''http://localhost:7654
    }))
    .on('end',done)
})
```

gulp-css-spriter (雪碧图/精灵图)

```
1 安装 npm install --save-dev gulp-css-spriter
var spriter = reuqire('gulp-css-spriter');
gulp.task('css',function(){
    return gulp.src('./css/demo.css')/引用我要合并雪碧图的小图片的css
    .pipe(spriter({
        'spriteSheet':'./dist/image/spritesheent.png'//合并的雪碧图
        'pathToSpriteSheetFromCss':'../images/spritesheet.png'//合并后css引用的图片路径
    }))
    .pipe(gulp.dest('./dist/css'))
})

```

gulp-clean(打包前清理目标文件夹,保证每次打包生成的都是新文件)

```
1 安装
 npm install --save-dev gulp-clean
 2 var clean = require('gulp-clean');
 gulp.task('clean',function(){
     gulp.src('demo/dist');
     .pipe(clean());
 })
```

gulp-file-include

```
1 安装 npm install --save-dev gulp-file-include
2 
var fileinclude = require('gulp-file-include');
gulp.task('fileinclude',function(){
    gulp.src(['index.html'])
    .pipe(fileinclude([
        prefix:'@@',
        basepath:'@file'
    ]))
    .pipe(gulp.dest('demo/dist'));
    .on('end',done)
})
```

gulp-change 过滤未被修改过的文件,只有修改过的文件才能通过

```
1 npm install --save-dev gulp-change
2 
gulp.task('change',function(){
    gulp.src('demo/src')
    .pipe(change(dest));//dest文件 ,必须穿参数
    .pipe(gulp.dest('demo/dest'))
})
```

相关文章

  • gulp

    gulp gulp.src gulp.dest gulp.task gulp.watch gulp.pipe() ...

  • gulp自动化项目构建

    var gulp = require('gulp');//引用gulp var $ = require('gulp...

  • gulp压缩合并文件

    gulp压缩合并文件流程 //引入gulp和gulp插件var gulp = require('gulp');va...

  • Gulp 使用方法(教程一)

    Gulp 官网 目录 Gulp 环境 Gulp 环境 初始化目录结构 安装 gulp gulp 的简单使用 使用 ...

  • gulp讲解

    一、gulp的四个主要的API gulp.src、gulp.pipe、gulp.dest、gulp.watch 二...

  • JS: gulp.js

    var gulp = require('gulp'), minify = require('gulp-minify...

  • gulp的简单使用

    gulp使用流程:安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gu...

  • gupl 的基本压缩

    // 获取 gulp var gulp = require('gulp'); // 获取 uglify 模块(用于...

  • gulp+webpack+experss

    var gulp = require('gulp'); var gls = require('gulp-live-...

  • gulp与webpack的区别

    gulp webpack 相同功能: 功能 gulp webpack gulp.task('sass'...

网友评论

      本文标题:gulp

      本文链接:https://www.haomeiwen.com/subject/sdetmqtx.html