使用gulp自动化前端工作流
安装gulp
gulp推荐安装到项目目录,不推荐全局目录,因为后期gulp会自动引入项目相关的支持包,如果全局安装gulp,这些支持包全都安装在/usr/local/lib/node_modules/下,不利于管理,可能易引起冲突。
npm install gulp
安装常用插件
// js压缩 gulp-uglify // css压缩 gulp-clean-css // 重命名 gulp-rename // 合并文件 gulp-concat // 捕获错误 gulp-plumber // 打包 gulp-zip //过率console信息 gulp-strip-debug
在gulpfile.js中载入插件
var gulp = require('gulp'); var uglify = require('gulp-uglify'); var concat = require('gulp-concat'); var minifyCss = require('gulp-minify-css'); var rename = require('gulp-rename'); var plumber = require('gulp-plumber'); var zip = require('gulp-zip'); var browserSync = require('browser-sync');
自动压缩css重命名
定义一个任务compress-css,压缩static文件夹下面的index.css,并且重命名为index.min.css,保存到build文件夹下面
gulp.task('compress-css', function() { gulp.src('static/index.css') .pipe(minifyCss()) .pipe(rename('index.min.css')) .pipe(gulp.dest('build')); });
自动压缩js代码并且重命名
定义一个任务compress-js,压缩static文件夹下面的index.js,并且重命名为index.min.js,保存到build文件夹下面
gulp.task('compress-js', function() { gulp.src('static/index.js') .pipe(uglify()) .pipe(rename('index.min.js')) .pipe(gulp.dest('build')); });
自动合并文件
合并src下面的js文件,重命名为all.js,保存在build文件夹下面
gulp.task('minify', function (){ return gulp.src('src/*.js') .pipe(concat('all.js')) .pipe(gulp.dest('build')) });
执行某个任务
gulp teskname
监视文件变化
这里定义一个默认的任务,只需要在gulp里面输入gulp
gulp.task('default', function(){ gulp.watch('src/*.*', function(){ gulp.run('teakname') }); });
打包发布任务
新建任务zip,将build文件夹下面的文件全部打包为publish.zip,发布到release文件夹下面
gulp.task('zip', function(){ return gulp.src('build/*') .pipe(plumber()) .pipe(zip('publish.zip')) .pipe(gulp.dest('release')) });
自动刷新浏览器
新建任务start,启用一个本地server,监视当前目录下的所有文件,一旦文件变化,浏览器reload
gulp.task('start', function() { browserSync.init({ server: { baseDir: "./" } }); gulp.watch('./*', function() { browserSync.reload(); }); })
在build任务中过滤目标文件中的console.log();
var stripDebug = require('gulp-strip-debug'); gulp.task('build', function () { .gulp.src() .pipe(stripDebug()) .pipe(gulp.dest()); });
监听gulp任务结束,执行回调
gulp.task('dev', function(){ gulp.src(src) .pipe(rename('app.js')) .on('end',function(){ console.log('这里是回调') }) });
相关推荐
星辰的笔记 2020-07-04
zhongweinan 2020-06-10
jiangfulai 2020-04-18
hlihaihong 2020-01-13
kaosini 2020-01-12
kaosini 2020-01-12
FranksTD 2019-12-19
hlihaihong 2019-12-15
hlihaihong 2019-12-14
我有一只小松鼠 2019-12-14
FranksTD 2019-12-13
SeekerTime 2019-11-17
yuetingzhuying 2015-10-17
福叔 2019-09-06
kaosini 2019-09-06
RainyX 2019-07-01
hlihaihong 2019-07-01
idnochinese 2019-07-01
UndefineOrNull 2019-07-01