gulp构建工具学习笔记

// 1、安装 gulp 命令行工具 npm install --global gulp-cli

// 2、安装 gulp,作为开发时依赖项 npm install --save-dev gulp

// 3、在项目目录下创建 package.json 文件npm init

const gulp = require('gulp')



/* 插件安装 

    cnpm install gulp-concat gulp-uglify gulp-rename --save-dev

    cnpm install gulp-less gulp-clean-css --save-dev

    cnpm install gulp-htmlmin --save-dev

    cnpm install gulp-livereload --save-dev

    cnpm install gulp-connect --save-dev

    cnpm install gulp-open --save-dev

*/

const concat = require('gulp-concat') // 临时合并文件

const uglify = require('gulp-uglify') // 压缩js文件

const rename = require('gulp-rename') // 重命名文件



const less = require('gulp-less') // 将less预编译语言转化为css语言

const clean_css = require('gulp-clean-css') // 压缩css文件



const htmlmin = require('gulp-htmlmin') // 处理html



const livereload = require('gulp-livereload') // 自动编译



const connect = require('gulp-connect') // 热加载(实时加载)



const open = require('gulp-open') // 自动打开浏览器



/*

第一个参数:任务的名字(自定义的)

第二个参数:回调函数

// gulp.task('hello', function () {

//     console.log('hello word')

// })

*/



/* 

gulp.src() 找到源文件路径,将数据读取到gulp内存中

gulp.dest() 找到目的文件路径,若无此路径,会去自动创建

pipe() 理解程序运行管道

gulp --version 检查 gulp 版本

*/



gulp.task('js', function () {

    return gulp.src('src/js/**/*.js') // 找到源文件路径,将数据读取到gulp内存中

    .pipe(concat('build.js')) // 临时合并文件

    .pipe(gulp.dest('dist/js/')) // 找到目的文件路径

    .pipe(uglify()) // 压缩文件

    .pipe(rename({suffix: '.min'})) // 重命名文件

    .pipe(gulp.dest('dist/js/')) // 找到目的文件路径

    .pipe(livereload()) // 实时刷新

    .pipe(connect.reload()) // 实时刷新

})



gulp.task('less', function () {

    return gulp.src('src/less/**/*.less')

    .pipe(less()) // 编译less文件为css文件

    .pipe(gulp.dest('src/css/'))

    .pipe(livereload()) // 实时刷新

    .pipe(connect.reload()) // 实时刷新

})



gulp.task('css', ['less'], function () { // 

    return gulp.src('src/css/**/*.css')

    .pipe(concat('built.css'))

    .pipe(rename({suffix: '.min'}))

    .pipe(clean_css({compatibility: 'ie8'})) // 兼容到ie8

    .pipe(gulp.dest('dist/css/'))

    .pipe(livereload()) // 实时刷新

    .pipe(connect.reload()) // 实时刷新

})



gulp.task('html', function () {

    return gulp.src('src/index.html')

    .pipe(htmlmin({collapseWhitespace:true}))

    .pipe(gulp.dest('dist/'))

    .pipe(livereload()) // 实时刷新

    .pipe(connect.reload()) // 实时刷新

})



// 半自动的监视任务

gulp.task('watch',['default'],function () {

    livereload.listen() // 开启监听



    // 确认监听目标以及绑定相应的任务

    gulp.watch('src/js/**/*.js', ['js'])

    gulp.watch(['src/css/**/*.css','src/less/**/*.less'], ['css'])

    gulp.watch('src/*.html', ['html'])

})



// 全自动的监视任务

gulp.task('server',['default'],function () {

    // 配置服务器的选项

    connect.server({

        root: 'dist/', // 输出后的根目录

        livereload: true, // 实时刷新

        port: 5000

    })

    

    open('http://localhost:5000')



    // 确认监听目标以及绑定相应的任务

    gulp.watch('src/js/**/*.js', ['js'])

    gulp.watch(['src/css/**/*.css','src/less/**/*.less'], ['css'])

    gulp.watch('src/*.html', ['html'])



})



gulp.task('default', ['js','less','css','html'])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LINGK98

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值