前段构建工具gulp原理及使用教程

1 gulp是什么

前端构建工具,gulp是基于Nodejs,自动化地完成 javascript、sass、less、html/image、css 等文件的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后刷新浏览器。借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具。                                    

2  环境搭建

由于gulp是基于Node,搭建gulp之前首先安装node。node项目的依赖、命令都需要一个文件来进行管理,就是package.json 文件,在搭建gulp之前,首先要运行npm init 这时候项目中就会出现我们需要的package.json文件。gulp也需要一个文件作为它的主文件,在gulp中这个文件叫做gulpfile.js。新建一个文件名为gulpfile.js的文件,然后放到项目目录中。

3 安装依赖

1 gulp 整个项目构建的基础; 2 gulp-autoprefixer 自动添加兼容浏览器的前缀; 3 gulp-concat 合并js指令;4 gulp-connect 配置服务器实现热更新+自动刷新;

5 gulp-file-include 公共文件的引用; 6 gulp-less 将less文件编译成css文件;7 gulp-minify-css 对css文件进行压缩;8 gulp-uglify 对js文件进行压缩

9 gulp-rename 对文件的重命名;10 gulp-htmlmin 对html文件的压缩;11 gulp-imagemin 对图片进行压缩;12 gulp-clean文件的删除; 13 gulp-livereload 监听文件变化刷新页面

 这是我项目安装的一下依赖的具体版本号。

需要注意需要在package.json文件中设置项目的入口文件,在gulp项目中需要指定为gulpfile.js作为入口文件

4  gulp API

1 gulp.task()  用来定义gulp任务,语法为gulp.task(name[, deps], fn) ;

  • name: 为任务名
  • deps: 是当前定义的任务需要依赖的其他任务,为一个数组。当前定义的任务会在所有依赖的任务执行完毕后才开始执行。如果没有依赖,则可省略这个参数
  • fn: 为任务函数,我们把任务要执行的代码都写在里面,是当前任务的实际处理逻辑。该参数也是可选的。

2 gulp.src() 获取文件流,存储我们开发时候编译的html、js、css等文件,语法为gulp.src(globs[, options] )

  • globs:文件匹配模式(类似正则表达式),用来匹配文件路径(包括文件名)
  • options:可选参数。通常情况不需要用到

     bundleJs为这个任务的方法名,通过**/*来匹配js文件夹下所有的文件夹和文件。gulp.src()内部使用node-glob模块实现文件匹配。具体匹配方法这里不做详细解读。

3 gulp.dest()写文件,语法为gulp.dest(path[,options])

  • path为写入文件的路径
  • options为一个可选的参数对象,通常我们不需要用到

    要想使用好gulp.dest()这个方法,就要理解给它传入的路径参数与最终生成的文件的关系。
    gulp的使用流程一般是这样子的:首先通过gulp.src()方法获取到我们想要处理的文件流,然后把文件流通过pipe方法导入到gulp的插件中,最后把经过插件处理后的流再通过pipe方法导入到gulp.dest()        中,gulp.dest()方法则把流中的内容写入到文件中,这里首先需要弄清楚的一点是,我们给gulp.dest()传入的路径参数,只能用来指定要生成的文件的目录,而不能指定生成文件的文件名,它生成文件        的文件名使用的是导入到它的文件流自身的文件名,所以生成的文件名是由导入到它的文件流决定的,即使我们给它传入一个带有文件名的路径参数,然后它也会把这个文件名当做是目录名。参考            gulp.src()中的截图例子。

4 gulp.watch()用来监视文件的变化,语法为gulp.watch(glob[, opts], tasks)

  • glob 为要监视的文件匹配模式,规则和用法与gulp.src()方法中的glob相同。
  • opts 为一个可选的配置对象,通常不需要用到
  • tasks 为文件变化后要执行的任务,为一个数组

5 gulp建立一个本地的webServer

  root为开启服务的文件夹,port为端口,livereload监控代码变化实时刷新页面

附上我自写的一套gulp基础程序,欢迎批评指正! ​​​​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值