博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gulp-前端进阶A-2
阅读量:6969 次
发布时间:2019-06-27

本文共 2702 字,大约阅读时间需要 9 分钟。

1、js压缩

注意在根目录的package.json文件里在成功安装uglify后要有 "gulp-uglify": "^1.5.4" 才行

var gulp = require('gulp'),

  gulpLoadPlugins = require('gulp-load-plugins'),   //插件使用取代多次require(......)
  plugins = gulpLoadPlugins();
var uglify=require('gulp-uglify');
gulp.task('default',function(){
  console.log('default');
});
gulp.task('utjs',['default'],function(){     //先执行任务default
  return gulp.src('src/js/*.js')
  .pipe(plugins.uglify())                      //这里plugins.****
  .pipe(gulp.dest('build'));
});

build目录里无文件夹时,自动匹配src文件结构生成,有文件夹时,build根生成,要想指定时,自己设置 .pipe(gulp.dest('build')); --> build/js或其他

2、gulp.src(path,{})---{base:'......'}作用

  gulp.src('src/js/*.js',{base:'src'}),在build内有目录时,加了base则不再生成在根目录,而是按照src的目录结构生成

3、异步问题

gulp.task('default',['two']);

gulp.task('two',['one'],function(){
  console.log(888+'two');
});
gulp.task('one',function(fn){
  setTimeout(function(){
    console.log(888+'one');
    fn();
  },2000);
});

  3.1 先说default,为默认任务,执行default可以直接gulp,所有任务可以无fun

  3.2 一般情况下,异步的时间到了才执行,所以还是two的先执行了,这里,无fn时,顺序为one->two->default,输出console.log(888+'two');->console.log(888+'one');

  3.3 fn:任务函数提供的回调,用来通知任务已经完成,就是one任务完成,然后才执行two,最后default,输出:

    

4、watch:gulp.watch(glob[,opts],tasks)

  4.1 

  gulp.watch('src/js/*.js',['three']);

  gulp.task('three',function(){

    console.log('three');

    //此处可以放页面刷新或者js压缩

  });

  改变js文件时变化:

  

  4.2 

  var watcher=gulp.watch('src/js/b.js',['four']);

  watcher.on('change',function(e){

    console.log('change');
    console.log(e.type+'、'+e.path);
  });
  gulp.task('four',function(){
    console.log('112');
  });

  //gulp four

  

  watch从上向下执行,监听change先执行,输出的是类型和路径

5、rename/放在压缩后,x.min.js

  ....pipe(plugins.uglify()).pipe(plugins.rename())....

  更多: https://www.npmjs.com/package/gulp-rename

6、minify-css

gulp.task('mincss',function(){    return gulp.src('src/less/*.css',{base:'src'})    .pipe(plugins.minifyCss())    .pipe(gulp.dest('build'));});

有无return好像没区别,base还是要写上的,这边跟空时,没有按照src目录结构生成

7、minify-html

1 gulp.task('minhtml',function(){2     return gulp.src('src/html/**/*.html',{base:'src'})3     .pipe(plugins.minifyHtml())4     .pipe(gulp.dest('build'));5 });
View Code

 要先安装npm install --save-dev gulp-minify-html,之前的也一样

8、concat

1 gulp.task('concat',function(){2     gulp.src('src/js/**/*.js',{
base:'src'})3 .pipe(plugins.uglify())4 .pipe(plugins.concat('ab.js'))5 .pipe(gulp.dest('build'));6 });

concat('x.js') ---> x为未存在的js时,合并并生成x.js,x为存在的js时候,合并到x.js里面在build里生成,合并顺序好像是按js文件名字母顺便合并的

9、less/sass

1 gulp.task('less',function(){2     gulp.src('src/less/*.less')3     .pipe(plugins.less())4     .pipe(gulp.dest('build/css'))5 });

类似的,装sass时有点插曲,先放着

 

 

 

LAST:宗旨------一个gulp命令,所有代码自动压缩、转化、合并......管理so easy

 

转载于:https://www.cnblogs.com/hhweb/p/5717527.html

你可能感兴趣的文章
新浪微博客户端(6)-创建首页下拉菜单
查看>>
SpringBoot拦截器中service或者redis注入为空的问题
查看>>
spring boot与spring mvc的区别是什么?
查看>>
谷歌代码托管 GoogleCode中 关于 版本的一个写法
查看>>
Javascript图像处理之虚拟边缘
查看>>
java插入排序兼编码注意
查看>>
POJ 1562 Oil Deposits
查看>>
AS3开发必须掌握的内容
查看>>
squid3.0 隐藏 hearder 设置
查看>>
优化MySQL数据库性能的八大方法
查看>>
Oracle之不可见索引
查看>>
iOS - Contacts 通讯录
查看>>
《C++ Primer Plus》16.1 string类 学习笔记
查看>>
NPOI之使用EXCEL模板创建报表
查看>>
晕,hibernate 的 merge和cascade="all-delete-orphan"要慎重合在一起使用
查看>>
成立23周年,大数据助力迪信通开启4.0时代征程
查看>>
酷!新款 iPad 可能将会取消 Home 键
查看>>
收快递成“新开门七件事” 京东小哥最暖心
查看>>
AMD又有大动作!2018CES期间牵手京东强势吸睛
查看>>
2017百度AI开发者大会 一场5000名开发者的分享盛宴
查看>>