当前位置: 代码迷 >> 综合 >> gulp个人总结
  详细解决方案

gulp个人总结

热度:47   发布时间:2024-01-25 10:42:36.0

gulp

前端自动化构建工具,可以进行文本合并,文件拷贝,js压缩,css压缩,图片压缩等。

入门

  1. 全局安装 gulp: $ npm install --global gulp
  2. 作为项目的开发依赖(devDependencies)安装: $ npm install --save-dev gulp
  3. 在项目根目录下创建一个名为 gulpfile.js 的文件:
var gulp = require('gulp');
gulp.task('default', function() {// 将你的默认的任务代码放在这
});
  1. 运行 gulp: $ gulp

watch和多个task任务

var gulp = require('gulp');
var less = require('gulp-less');
gulp.task('one', function() {// 将你的默认的任务代码放在这return gulp.src("./public/less/test.less").pipe(less()).pipe(gulp.dest("./public/css01/"));
});
gulp.task('two', ['one'],function() {// 将你的默认的任务代码放在这return gulp.src("./public/less/test01.less").pipe(less()).pipe(gulp.dest("./public/css01/"));
});gulp.task('default',['one','two'])//监听所有less的变化,改变时触发 one、two task任务和on change事件函数
var watcher = gulp.watch('public/less/*.less', ['one','two']);
watcher.on('change', function(event) {console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});

实例

  • gulp-less 编译LESS文件
安装 npm install gulp-lessvar gulp = require('gulp'),less = require('gulp-less');gulp.task('testLess', function () {gulp.src('src/less/index.less').pipe(less()).pipe(gulp.dest('src/css'));
});
  • gulp-autoprefixer 添加CSS私有前缀
安装 npm install gulp-autoprefixervar gulp = require('gulp')
var autoprefixer = require('gulp-autoprefixer');
gulp.task('test', function () {gulp.src('public/css/test01.css').pipe(autoprefixer({browsers: ['last 2 versions', 'Android >= 4.0','last 2 Explorer versions','last 3 Safari versions'],cascade: true, //是否美化属性值 默认:true 像这样://-webkit-transform: rotate(45deg);//        transform: rotate(45deg);remove:true //是否去掉不必要的前缀 默认:true })).pipe(gulp.dest('public/css/dist/'));
});
  • gulp-cssmin 压缩CSS
安装 npm install gulp-cssminvar gulp = require('gulp'),cssmin = require('gulp-cssmin');gulp.task('test', function () {gulp.src('public/css/test.css').pipe(cssmin()).pipe(gulp.dest('dist/css'));
});
  • gulp-rname重命名
安装 npm install gulp-renamevar gulp = require('gulp'),rename = require('gulp-rename');gulp.task('test', function () {gulp.src('public/css/test.css').pipe(rename('index.min.css')).pipe(gulp.dest('dist/css'));
});
  • gulp-imagemin 图片压缩
安装 npm install gulp-renamevar gulp = require('gulp'),imagemin = require('gulp-imagemin');gulp.task('test', function () {return gulp.src('src/images/*').pipe(imagemin()).pipe(gulp.dest('build/images'));
});
  • gulp-uglify 压缩Javascript、混淆代码
安装 npm install gulp-uglify
安装 npm install gulp-concatvar gulp = require('gulp');
var concat= require("gulp-concat");
var uglify= require("gulp-uglify");gulp.task('test', function () {gulp.src('public/js/*.js').pipe(concat("min.js")) .pipe(uglify({mangle: { toplevel: true },//类型:Boolean 默认:true 是否修改变量名compress: true,//类型:Boolean 默认:true 是否完全压缩}))//压缩.pipe(gulp.dest('build/js'));
});
  • gulp-concat 合并
安装 npm install gulp-concatvar gulp = require('gulp');
var concat= require("gulp-concat");gulp.task('test', function () {gulp.src('public/js/*.js')//把所有js文件合并到min.js中.pipe(concat("min.js")) .pipe(gulp.dest('build/js'));
});
  • gulp-htmlmin 压缩HTML
安装 npm install gulp-minify-htmlvar gulp = require('gulp');
var minify= require("gulp-minify-html");gulp.task('test', function () {gulp.src('public/html/*.html')//要压缩的html文件.pipe(minifyHtml())//压缩.pipe(gulp.dest('build/html'));
});
  • gulp-rev-append 添加版本号
index.html
<!doctype html>
<html><head><link rel="stylesheet" href="public/css/test.css?rev=@@hash"><script src="public/js/a.js?rev=@@hash"></script><script src="public/js/index.js"></script></head><body><div>hello, world!</div><img src="images/a.png?rev=@@hash" alt="" /><script src="public/js/test01.js?rev=@@hash"></script></body>
</html>安装 npm install gulp-autoprefixervar gulp = require('gulp')
var rev = require('gulp-rev-append');
gulp.task('test', function () {gulp.src('./index.html').pipe(rev()).pipe(gulp.dest('./dist/html'));
});

补充

  • glup-if
  • gulp-useref
  • gulp.spritesmith 雪碧图
var gulp = require("gulp");  
var spritesmith = require('gulp.spritesmith'); //雪碧图  gulp.task('sprite', function () {  return gulp.src('src/images/*.png').pipe(spritesmith({  //需要混合的图片路径  imgName: 'sprite.png',  //合并后图片的名称  cssName: 'sprite.css'   //生成的CSS文件  })).pipe(gulp.dest('sprite')); //文件输出路径  
});
  • gulp教程