Gulp.js是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。Gulp.js是基于Node.js构建的,利用Node.js流的威力,你可以快速构建项目并减少频繁的IO操作。Gulp.js源文件和你用来定义任务的Gulp文件都是通过JavaScript源码来实现的
定义一个使用 Orchestrator 实现的任务(task)
输出(Emits)符合所提供的匹配模式(glob)或者匹配模式的数组(array of globs)的文件。 将返回一个 Vinyl files 的 stream 它可以被 piped 到别的插件中
能被 pipe 进来,并且将会写文件。并且重新输出(emits)所有数据,因此你可以将它 pipe 到多个文件夹。如果某文件夹不存在,将会自动创建它
监听文件或者文件夹的变化,并执行任务
const gulp = require(‘gulp‘);
const autoprefixer = require(‘gulp-autoprefixer‘);
const cleancss = require(‘gulp-clean-css‘);
const rename = require("gulp-rename");
const sass = require(‘gulp-sass‘);
gulp.task(‘sass‘, () => {
return gulp.src([‘src/sass/*.scss‘, ‘src/sass/*.sass‘])
.pipe(sass()) // 通过sass插件将sass编译为css,如果需要编译less,则改用less插件
.pipe(autoprefixer({//自动补全css3前缀
cascade: false
}))
.pipe(gulp.dest(‘./dist/css‘))
.pipe(cleancss()) //压缩css
.pipe(rename({ //重命名
suffix: ‘.min‘
}))
.pipe(gulp.dest(‘./dist/css‘));
})
const babel = require(‘gulp-babel‘);
const uglify = require(‘gulp-uglify‘);
gulp.task(‘js‘, () => {
return gulp.src(‘src/js/*.js‘)
.pipe(babel({ // 通过babel插件将ES6转成ES5
presets: [‘env‘]
}))
.pipe(gulp.dest(‘./dist/js‘))
.pipe(uglify()) // 丑化js代码
.pipe(rename({ // 重命名
suffix: ‘.min‘ // 添加后缀
}))
.pipe(gulp.dest(‘./dist/js‘))
})
gulp.task(‘image‘, () => {
return gulp.src(‘./src/images/*‘)
.pipe(imagemin([
imagemin.gifsicle({
interlaced: true
}),
imagemin.jpegtran({
progressive: true
}),
imagemin.optipng({
optimizationLevel: 5
}),
imagemin.svgo({
plugins: [{
removeViewBox: true
},
{
cleanupIDs: false
}
]
})
], {
verbose: true
}))
.pipe(gulp.dest(‘./dist/src/images‘));
})
gulp.task(‘copy‘, () => {
return gulp.src(‘./index.html‘)
.pipe(gulp.dest(‘./dist‘))
})
gulp.task(‘default‘,function(){
gulp.src("./gulp/**/*.js")
.pipe(concat("main.js"))//合并
.pipe(uglify())//压缩
.pipe(rename("main.min.js"))//重命名
.pipe(gulp.dest("./dist/"))
})
原文:https://www.cnblogs.com/piaoyi1997/p/13362336.html