1.全局安装gulp工具
npm install --global gulp-cli
2.创建项目并且初始化
npm init -y
3.在项目中安装gulp
npm i gulp -D
4.配置gulpfile.js
//模块全部安装为开发依赖,然后载入
let gulp = require('gulp')
// 载入sass的模块
const sass = require('gulp-sass')(require('sass'))
// 载入css压缩的模块
var cssmin = require('gulp-cssmin')
// 载入重命名模块
const rename = require('gulp-rename')
// 载入转换JS语法的工具
const babel = require('gulp-babel')
// 载入压缩JS的工具
const uglify = require('gulp-uglify')
// 载入html压缩工具
const htmlmin = require('gulp-htmlmin')
// 载入创建web服务的模块
const connect = require('gulp-connect')
// 载入打开浏览器的模块
const open = require('open')
// 自动打开浏览器的任务
function taskOpen(cb){
// 创建并且启动web服务
connect.server({
port:8080,
root:'dist'
})
// 自动打开浏览器
open('http://127.0.0.1:8080/pages/index.html')
// 如果src/js目录下的文件被修改,重新执行taskJS任务
gulp.watch('src/js/**',taskJs);
cb()
}
// 专门处理静态资源
function taskStatic(cb){
gulp.src('src/static/**')
.pipe(gulp.dest('dist/static'))
cb()
}
// 专门压缩html代码
function taskHtml(cb){
gulp.src('src/pages/**')
// 压缩html代码
.pipe(htmlmin({ collapseWhitespace: true }))
.pipe(gulp.dest('dist/pages'))
cb()
}
// 专门打包JS语法的任务
function taskJs(cb){
gulp.src('src/js/**')
// 将ES6的语法转换
.pipe(babel({presets:['es2015']}))
// 压缩js代码
.pipe(uglify())
// 保存文件
.pipe(gulp.dest('dist/js'))
cb()
}
// 专门处理sass源码的任务
function taskSass(cb){
gulp.src('src/sass/**')
// sass源码转换
.pipe(sass())
// css压缩
.pipe(cssmin())
// 重命名文件
.pipe(rename({
suffix:'.min'
}))
// 输出内容到文件中
.pipe(gulp.dest('dist/css'))
cb()
}
// 导出一个同步任务
exports.default = gulp.series(taskSass,taskJs,taskHtml,taskStatic,taskOpen)