gulp的简单用法

gulp的简单用法:官网(https://gulpjs.com

什么是gulp?

  gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器;它不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用它,不仅可以很愉快的编写代码,而且大大提高我们的工作效率。

  gulp是基于Nodejs的自动任务运行器, 它能自动化地完成 前端代码的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。

使用

1.尽量安装到项目中:npm install --save-dev gulp
2.配置项目中的package.json文件,在scripts中添加gulp命令,如下,启动命令未:npm run gulp

{
  "dependencies": {
    "gulp": "^4.0.2",
    "gulp-less": "^4.0.1"
  },
  "scripts": {
    "gulp": "gulp"
  }
}

3.在项目中新建gulpfile.js文件,样本如下:

function defaultTask(cb) {
  // place code for your default task here
  cb();
}

exports.default = defaultTask // 一定要记得exports.default,不然程序运行报错

接下来我们做个小demo:
1.在当前项目的根目录下新建src文件夹,将src文件夹下的所有文件都打包都build文件夹下。(build是自动生成的)

在gulpfile.js中添加如下代码

const { series,src,dest } = require('gulp');

const _defaults = series((cb)=>{
    src(['src/**/*'])
    .pipe(dest('build/'));
    cb();
})

exports.default = _defaults;

运行npm run gulp;结果会在项目的根目录下创建一个build文件夹,里面的文件和src文件夹下的文件一摸一样

构建前删除上次构建的文件
安装del :npm install del

在gulpfile.js中添加如下代码

const del = require('del');
...
const _del= (cb)=>{
    del.sync(['build/']);
    cb();
}

const _defaults = series((cb)=>{
    src(['src/**/*'])
    .pipe(dest('build/'));
    cb();
})
...

exports.default =parallel(_del,_default);

此时运行npm run gulp就可以实现删除之前的build后再重新构建

 

gulp还支持多个组合依次运行:

const { series ,src,dest } = require('gulp');

const doing = (cb)=>{
    setTimeout(()=>{
        console.log('doing!');
        cb();
    }) 
}
const complete= (cb)=>{
    console.log('complete');
    cb();
}
exports.default = series(doing ,complete);

运行结果,等doing执行完成后,然后再执行后面的complete方法:

[17:50:59] Using gulpfile E:\MyProject\node\gulp\building\gulpfile.js
[17:50:59] Starting 'default'...
[17:50:59] Starting '_less'...
doing!
[17:50:59] Finished '_less' after 9.75 ms
[17:50:59] Starting '_defaults'...
complete
[17:50:59] Finished '_defaults' after 224 μs
[17:50:59] Finished 'default' after 12 ms

同样也支持多个组合同时运行

const { parallel  ,src,dest } = require('gulp');

const doing = (cb)=>{
    setTimeout(()=>{
        console.log('doing!');
        cb();
    })
}
const complete= (cb)=>{
    console.log('complete');
    cb();
}
exports.default = parallel (doing,complete);

运行结果,由于doing有定时器,所以会先输出complete,再输出doing:

[17:52:56] Using gulpfile E:\MyProject\node\gulp\building\gulpfile.js
[17:52:56] Starting 'default'...
[17:52:56] Starting '_less'...
[17:52:56] Starting '_defaults'...
complete
[17:52:56] Finished '_defaults' after 7.93 ms
doing!
[17:52:56] Finished '_less' after 9.54 ms
[17:52:56] Finished 'default' after 11 ms

 

拓展:
gulp-clean-css:压缩css
gulp-autoprefixer:给css添加浏览器前缀
gulp-less:将less转成css

下面是一个简单的小例子,实现对less操作

const {parallel,dest,src } = require('gulp');
const del = require('del');
const less = require('gulp-less');
const autoprefixer = require('gulp-autoprefixer');
let cleanCSS = require('gulp-clean-css');

const _del= (cb)=>{
    del.sync(['build/']);
    cb();
}

const _less = (cb)=>{
    src('src/style/*.less')
    .pipe(less()) // less转成css
    .pipe(cleanCSS()) // 压缩css
    .pipe(autoprefixer({ // 自动补齐css浏览器前缀
        cascade: false,
        browsers:['last 5 version'],
    }))
    .pipe(dest('build/style/'))
    cb();
}

const _default = parallel((cb)=>{
    src(['src/**/*','!src/**/*.less'])
    .pipe(dest('build/'))
    cb();
},_less)


exports.default =parallel(_del,_default);

 

 

 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值