设为首页 加入收藏

TOP

构建工具Gulp(二)
2017-10-13 10:50:09 】 浏览:8660
Tags:构建 工具 Gulp
方法中的return单独拿出来,是因为其虽然不起眼,但却很重要。如果任务b需要依赖任务a的完成,那么任务a的task方法需要使用return返回stream,如下所示

gulp.task('testLess', function () {
    return gulp.src(['less/style.less'])
        .pipe(less())
        .pipe(gulp.dest('./css'));
});
 
gulp.task('minicss', ['testLess'], function () { //执行完testLess任务后再执行minicss任务
    gulp.src(['css/*.css'])
        .pipe(minifyCss())
        .pipe(gulp.dest('./dist/css'));
});

【gulp.watch(glob [, opts], tasks)】

【gulp.watch(glob [, opts, cb])】

  watch方法是用于监听文件变化,文件一修改就会执行指定的任务,参数如下

glob(必填):  以一个glob字符串,或者一个包含多个glob字符串的数组的形式来表示需要处理的源文件匹配符路径
opts:       类型(可选):Object 需要设置的参数
tasks:      类型(必填):StringArray 需要执行的任务的名称数组;
cb(event):  类型(可选):Function 每个文件变化执行的回调函数;
  event.type:   类型:String 发生的变动的类型有added, changed 或者 deleted
  event.path:   类型:String 触发了该事件的文件的路径
gulp.task('watch1', function () {
    gulp.watch('less/**/*.less', ['testLess']);
});
gulp.watch('js/**/*.js', function(event) {
  console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});
var watcher = gulp.watch('js/**/*.js', ['uglify','reload']);
watcher.on('change', function(event) {
  console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});

 

命令行

【参数标记】

-v 或 --version         会显示全局和项目本地所安装的gulp版本号
--require <module path>     将会在执行之前reqiure一个模块。可以使用多个--require
--gulpfile <gulpfile path>   手动指定一个gulpfil 的路径,会将CWD设置到该gulpfile所在目录
--cwd <dir path>         手动指定CWD。定义gulpfile查找的位置,所有的相应依赖会从这里开始计算相对路径
-T 或 --tasks           会显示所指定 gulpfile 的 task 依赖树
--tasks-simple          会以纯文本的方式显示所载入的 gulpfile 中的 task 列表
--color              强制 gulp 和 gulp 插件显示颜色,即便没有颜色支持
--no-color            强制不显示颜色,即便检测到有颜色支持
--silent              禁止所有的 gulp 日志

  命令行会在 process.env.INIT_CW 中记录它是从哪里被运行的

【Tasks】

  Task可以通过 gulp <task> <othertask> 方式来执行。如果只运行 gulp 命令,则会执行所注册的名为 default 的 task,如果没有这个 task,那么 gulp 会报错

  

插件

0、串行

  gulp执行多个任务的时候是异步的。但是实际应用场景中,我们并不希望所有任务都同时执行,我们希望有个先后顺序,某些任务需要再另一些任务执行完之后才去执行

  gulp-sequence插件能够很好的完成这个任务

npm install --save-dev gulp-sequence

  以下代码中,先并行执行'a'、'b',再执行'c',再并行执行'd'、'e',再执行'f'

var gulp = require('gulp')
var gulpSequence = require('gulp-sequence')
 
gulp.task('test', gulpSequence(['a', 'b'], 'c', ['d', 'e'], 'f'))

1、js相关插件

【concat】合并文件

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

【uglify】压缩java script文件

var gulp = require('gulp'),
    uglify= require('gulp-uglify');
 
gulp.task('jsmin', function () {
    //压缩src/js目录下的所有js文件
    //除了test1.js和test2.js(**匹配src/js的0个或多个子文件夹)
    gulp.src(['src/js/*.js', '!src/js/**/{test1,test2}.js']) 
        .pipe(uglify())
        .pipe(gulp.dest('dist/js'));
});

【requirejs】打包模块化的js文件

var gulp = require('gulp'),
    requirejs = require('gulp-requirejs');

gulp.task('script',function(){
    //将js模块打包成一个文件
    return requirejs({
          baseUrl: 'src/js',
          paths:{
            'jquery':'../../dist/js/jquery'
          },
          out:'main.js',
          name: 'main',       
          exclude: ['jquery']
    })
    .pipe(gulp.dest('dist/js')); 
})

【jshint】js代码检测

var gulp = require('gulp'),
    jshint = require('gulp-jshint');

gulp.task('script',function(){
    gulp.src('src/js/*.js')
    //设置js检测规则,并检测js代码
    .pipe(jshint('.jshintrc'))
    //对代码进行报错提示
    .pipe(js
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇JavaScript 特效三大系列总结 下一篇webpack分离第三方库(CommonsChun..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目