目录
-
4.1. Tasks automation
-
-
4.1.1. gulp-changed
4.1.2. 显示处理进度
4.1.3. notify
4.1.4. del
4.1.5. start
4.2. watch
4.3. HTML Minification
4.4. CSS Minification
-
-
4.4.1. gulp-minify-css
4.4.2. gulp-clean-css
4.4.3. gulp-make-css-url-version
4.4.4. CSS 冗余分析
4.5. JS Minification
-
-
4.5.1. JS 校验
4.6. CSS Sprite
4.7. Compress Images
4.8. WEBP格式图片
4.9. Sass Compilation
4.10. Less Compilation
4.11. 重命名文件名
4.12. 合并文件
4.13. 文件头
4.14. yargs 命令行参数传递
-
-
4.14.1. gulp-util
4.14.2. minimist
4.15. gulp-sourcemaps
4.16. gulp-zip
4.17. 清理JS中的console.log()调试语句
4.18. copy-dir
4.19. gulp-copy
4.20.
4.21. Example
-
-
4.21.1. HTML,JS,CSS
4.21.2. 命令行传递参数
安装
npm install gulp-cli npm install gulp -D
创建 gulpfile.js 文件
var gulp = require('gulp'); var pug = require('gulp-pug'); var less = require('gulp-less'); var minifyCSS = require('gulp-csso'); gulp.task('html', function(){ return gulp.src('client/templates/*.pug') .pipe(pug()) .pipe(gulp.dest('build/html')) }); gulp.task('css', function(){ return gulp.src('client/templates/*.less') .pipe(less()) .pipe(minifyCSS()) .pipe(gulp.dest('build/css')) }); gulp.task('default', [ 'html', 'css' ]);
排除目录
gulp.src(['js/**/*.js', '!js/**/*.min.js'])
4.1. Tasks automation
4.1.1. gulp-changed
// npm install --save-dev gulp gulp-changed gulp-jscs gulp-uglify var gulp = require('gulp'); var changed = require('gulp-changed'); var jscs = require('gulp-jscs'); var uglify = require('gulp-uglify'); var SRC = 'src/**/*.js'; var DEST = 'dist'; gulp.task('default', function() { return gulp.src(SRC) .pipe(changed(DEST)) // changed 任务需要提前知道目标目录位置才能找出哪些文件是被修改过的,只有被更改过的文件才会通过这里 .pipe(jscs()) .pipe(uglify()) .pipe(gulp.dest(DEST)); });
4.1.2. 显示处理进度
显示处理中的文件
gulp.task('minify-css', function () { gulp.src([src + '/**/css/**/*.css', "!"+src + '/**/css/**/*.min.css']) .on('data', function(file) { console.log('%s Read %d bytes of data', file.path, file.contents.length); }) .pipe(concat("finally.css")) .pipe(rename({ suffix: '.min' })) .pipe(minifycss()) .pipe(gulp.dest( dist )); });
4.1.3. notify
npm install --save-dev gulp-notify
var notify = require('gulp-notify');
.pipe(notify({ message: 'Styles task complete' }));
4.1.4. del
var gulp = require('gulp'); var del = require('del'); gulp.task('clean:mobile', function (cb) { del([ 'dist/**/css/*.min.css', 'dist/mobile/**/*', '!dist/mobile/deploy.json' ], cb); }); gulp.task('default', ['clean:mobile']); // Clean gulp.task('clean', function() { return del(['dist/styles', 'dist/scripts', 'dist/images']); });
4.1.5. start
// Default task gulp.task('default', ['clean'], function() { gulp.start('styles', 'scripts', 'images'); });
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。