gulp入门
gulp怎么玩
前端工作流
场景
vue-cli ??? 自动打包
vue build打包时候其实就是在文件的合并,压缩,优化,到dist文件夹
开始
yarn add gulp -S
const gulp = require('gulp') // 任务名、任务事 gulp.task('hello', function () { console.log('Gulp负责前端开发阶段的任务,文件的合并,压缩,优化') })
执行任务:
gulp hello
任务数组,默认就不用写了
gulp.task('default', ['hello'])
复制
// src 代表根目录 gulp.task('copy-index', function() { return gulp.src('index.html') .pipe(gulp.dest('dist')) })
直接打包整个文件夹的拷贝和处理
// *.*就是全部文件 // */* 走一级,匹配下一层 // **/* 所有都要 gulp.task('images', function () { return gulp.src('images/icons/*.{png,jpg}') .pipe(gulp.dest('dist/images/icon')) })
打包多个
gulp.task('data', function () { return gulp.src(['xml/*.xml','json/*.json']) .pipe(gulp.dest('dist/data')) })
跳过一些文件
排除类似secret-01.json的文件
return gulp.src(['xml/*.xml','json/*.json','!json/secret-*.json']) .pipe(gulp.dest('dist/data'))
监视watch
gulp.task('copy-index', function() { return gulp.src('index.html') .pipe(gulp.dest('dist')) }) gulp.task('watch', function () { gulp.watch('index.html', ['copy-index']) })
开放监听
gulp watch
sass转css
安装包
yarn add gulp-sass -S npm i gulp-sass --save-dev yarn add --dev gulp-sass
pipe过一下
gulp.task('sass', function() { gulp.src('stylesheet/**/*.scss') .pipe(sass()) .pipe(gulp.dest('dist/css')) })
热更新
yarn add --dev gulp-connect
然后
const connect = require('gulp-connect') gulp.task('server',function() { connect.server({ root: 'dist/', port: 3000, livereload: true }) }) gulp.task('watch', function() { gulp.watch('index.html', ['copy-index']) }) gulp.task('copy-index', function() { return gulp.src('index.html') .pipe(gulp.dest('dist')) .pipe(connect.reload()) }) gulp.task('default', ['server', 'watch'])
合并文件,优化减少并发
yarn add --dev gulp-concat
<script></script>
<script></script>
这样引入??有两个请求哦!!减少请求数量!
gulp.task('script', function() { return gulp.src(['javascripts/jquery.js', 'javascripts/modernizr.js']) .pipe(concat('vendor.js')) .pipe(gulp.dest('dist/js')) })
压缩重命名
const uglify = require('gulp-uglify') const rename = require('gulp-rename')
gulp.task('zip', function() { return gulp.src(['javascripts/jquery.js', 'javascripts/modernizr.js']) .pipe(concat('vendor.js')) .pipe(gulp.dest('dist/js')) .pipe(uglify()) .pipe(rename('vendor.min.js')) .pipe(gulp.dest('dist/js')) }) ##压缩css const minify = require('gulp-minify-css')
gulp.task('minify', function() {
gulp.src('stylesheet/*/.scss')
.pipe(sass()) .pipe(gulp.dest('dist/css')) .pipe(minify()) .pipe(rename('style.min.css')) .pipe(gulp.dest('dist/css'))
})
##图片优化 const imagemin = require('gulp-imagemin')
gulp.task('imagemin', function() {
return gulp.src('images/icons/*.{png,jpg}')
.pipe(gulp.dest('dist/images/icon')) .pipe(imagemin()) .pipe(gulp.dest('dist/images/icon'))
})
相关推荐
星辰的笔记 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