gulp
一、gulp4
1.series 和 parallel 的区别
gulp.task(
'default',
gulp.series(['a'], function (done) {
console.log('bbb');
done();
})
);
gulp.task(
'default',
gulp.parallel(['a'], function (done) {
console.log('bbb');
done();
})
);
2.插件
"gulp": "^4.0.2",
"gulp-load-plugins": "^2.0.7",
"gulp-rename": "^2.0.0",
"gulp-concat": "^2.6.1",
"gulp-uglify": "^3.0.2",
"gulp-sass": "^5.1.0",
"sass": "^1.50.0",
"gulp-minify-css": "^1.2.4",
"browser-sync": "^2.27.9",
"gulp-minify-html": "^1.0.6"
3.相关示例
var { series, src, dest, watch } = require('gulp');
var plugins = require('gulp-load-plugins')();
var sass = require('gulp-sass')(require('sass'));
var browser = require('browser-sync').init({
server: './dist',
port: 4050,
});
exports.default = series([changecss, changejs, changehtml], main);
async function changejs() {
src('./src/js/**/*.js')
.pipe(plugins.concat('main.js'))
.pipe(plugins.uglify())
.pipe(plugins.rename('main.min.js'))
.pipe(dest('./dist/js/'))
.on('end', browser.reload);
}
async function changecss() {
src('./src/sass/**/*.scss')
.pipe(sass())
.pipe(plugins.concat('main.css'))
.pipe(plugins.minifyCss())
.pipe(plugins.rename('main.min.css'))
.pipe(dest('./dist/css/'))
.on('end', browser.reload);
}
async function changehtml() {
src('./src/**/*.html')
.pipe(plugins.minifyHtml())
.pipe(dest('./dist/'))
.on('end', browser.reload);
}
async function main() {
watch('./src/js/**/*.js', changejs);
watch('./src/sass/**/*.scss', changecss);
watch('./src/**/*.html', changehtml);
}
二、gulp3
1.运行环境
- gulp3 运行的 node 版本需在 10 以下
2.相关插件
3.相关示例
const gulp = require('gulp');
const concat = require('gulp-concat');
const rename = require('gulp-rename');
const uglify = require('gulp-uglify');
const babel = require('gulp-babel');
const sass = require('gulp-sass')(require('sass'));
const minifyCss = require('gulp-minify-css');
gulp.task('default', function () {
gulp.watch('./src/js/**/*.js', savejs);
gulp.watch('./src/scss/**/*.scss', saveCss);
});
function saveCss() {
gulp
.src('./src/scss/**/*.scss')
.pipe(sass())
.pipe(concat('main.css'))
.pipe(minifyCss())
.pipe(rename('main.min.css'))
.pipe(gulp.dest('./dist/css'));
}
function savejs() {
gulp
.src('./src/js/**/*.js')
.pipe(concat('main.js'))
.pipe(
babel({
presets: ['@babel/env'],
})
)
.pipe(uglify())
.pipe(rename('main.min.js'))
.pipe(gulp.dest('./dist/js'))
.on('end', function () {
console.log('保存完毕');
});
}