博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gulp脚本
阅读量:6804 次
发布时间:2019-06-26

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

var gulp = require('gulp');

// sass 插件

var sass = require('gulp-sass');

// 自动同步浏览器插件

var browserSync = require('browser-sync');

// 合并文件的插件

var useref = require('gulp-useref');

// 压缩js插件

var uglify = require('gulp-uglify');var gulpIf = require('gulp-if');

// 压缩css插件

var cssnano = require('gulp-cssnano');

// 压缩图片插件

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

// 压缩png图片的插件

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

// 缓存插件,可以加快编译速度

var cache = require('gulp-cache');

// 删除文件插件

var del = require('del');

// 同步运行任务插件

var runSequence = require('run-sequence');

// 给css3属性添加浏览器前缀插件

var autoprefixer = require('gulp-autoprefixer');// sourcemap 插件var sourcemaps = require('gulp-sourcemaps');var lazypipe = require('lazypipe');

// 合成sprite图片插件

var spritesmith = require('gulp.spritesmith');var imageminOptipng = require('imagemin-optipng');

// 编译sass文件,添加css3属性浏览器前缀,reload 浏览器

gulp.task('sass', function () { return gulp.src('./src/scss/**/*.scss')     .pipe(sass())     .pipe(autoprefixer())     .pipe(gulp.dest('./src/css'))     .pipe(browserSync.reload({stream: true}));});

// 自动更新浏览器任务

gulp.task('browserSync', function () { browserSync.init({     server: {         baseDir: 'src'     } })});

// 合并文件任务

// 在html设置需要合并的文件:
// <!--build:js js/flexible.min.js -->
// <script src="js/flexible_css.js"></script>
// <script src="js/flexible.js"></script>
// <!-- endbuild-->
// 执行任务后,会编译成 : <script src="js/flexible.min.js"></script>
// 同时会把 flexible_css.js 和 flexible.js 合并成 flexible.min.js

gulp.task('useref', function () { return gulp.src('./src/*.html')     .pipe(useref({}, lazypipe().pipe(sourcemaps.init, { loadMaps: true })))     .pipe(gulpIf('*.js', uglify()))     .pipe(gulpIf('*.css', cssnano()))     .pipe(sourcemaps.write('maps'))     .pipe(gulp.dest('dist'));});

// 图片压缩任务

gulp.task('images', function () { return gulp.src('./src/img/**/*.+(png|jpg|gif|svg)')     .pipe(imagemin({         progressive: true,         svgoPlugins: [{removeViewBox: false}],         use: [pngquant()]     }))     .pipe(gulp.dest('dist/img'));});

// 合并sprite图任务

gulp.task('sprite', function () { var spriteData = gulp.src('./src/img/sprite/**/*.png')     .pipe(spritesmith({         imgName: 'sprite.png',         cssName: 'sprite.scss',         imgPath: '../img/sprite/sprite.png',         cssFormat: 'scss',         padding: 10     })); return spriteData.pipe(gulp.dest('./src/img/sprite/'))});

// 删除build目录

gulp.task('clean:dist', function () { return del.sync('dist');});

// 清除缓存

gulp.task('cache:clear', function (cb) { return cache.clearAll(cb)});

// 监控任务,当有sass文件,html文件,js文件改动的时候,刷新浏览器

gulp.task('watch', ['browserSync', 'sass'], function () { gulp.watch('./src/scss/**/*.scss', ['sass']); gulp.watch('./src/*.html', browserSync.reload); gulp.watch('./src/js/**/*.js', browserSync.reload);});

// 构建最终输出文件

gulp.task('build', function (callback) { runSequence('clean:dist', ['sass', 'useref', 'images', 'fonts'], callback);});

// gulp 默认执行任务

gulp.task('default', function (callback) { runSequence(['sass', 'browserSync', 'watch'], callback);});

转载地址:http://zfnwl.baihongyu.com/

你可能感兴趣的文章
桌面支持--512-Rear chassis fan not detected
查看>>
Django 开源相册组件介绍 django-photologue
查看>>
IntelliJ IDEA 14 创建Web项目
查看>>
Redis server命令
查看>>
PeerConnection
查看>>
关于ext-js 中的自定义校验
查看>>
服务端response对象属性和方法
查看>>
护眼色
查看>>
Linux下安装JDK
查看>>
axis2报错:The following error occurred during schema generation: null
查看>>
JS this指向详解
查看>>
自动布局
查看>>
【云计算的1024种玩法】手把手教你如何编译升级 OpenResty
查看>>
Mac Appium环境安装
查看>>
android源码分享,布局切换微信提醒对话框下拉刷新Cell进度动画代码下载
查看>>
Hello world!
查看>>
Solidity 函数returns多个值的接收方式 总结
查看>>
基于PCDN技术的无延时直播方案
查看>>
七周二次课
查看>>
安装版JDK后,修改环境变量,也无法生效的原因和解决办法
查看>>