gulp
是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,不仅可以很愉快的编写代码,而且大大提高我们的工作效率。
What is gulp?
gulp
是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,不仅可以很愉快的编写代码,而且大大提高我们的工作效率。
gulp
是基于Nodejs
的自动任务运行器, 她能自动化地完成 javascript、coffee、sass、less、html/image、css
等文件的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。
安装
首先确保你已经正确安装了nodejs环境。然后以全局方式安装gulp:
全局安装gulp后,还需要在每个要使用gulp的项目中都单独安装一次。把目录切换到你的项目文件夹中,然后在命令行中执行:
如果想在安装的时候把gulp写进项目package.json文件的依赖中,则可以加上–save-dev:
**这样就完成了gulp的安装,接下来就可以在项目中应用gulp了。继续学习 **
gulpfile.js
gulp的使用
- 建立gulpfile.js文件
gulp
也需要一个文件作为它的主文件,在gulp
中这个文件叫做gulpfile.js
。新建一个文件名为gulpfile.js的文件,然后放到你的项目目录中。之后要做的事情就是在gulpfile.js
文件中定义我们的任务了。下面是一个最简单的gulpfile.js
文件内容示例,它定义了一个默认的任务。
2.运行gulp
任务
要运行gulp任务,只需切换到存放gulpfile.js文件的目录(windows平台请使用cmd或者Power Shell等命令行工具),然后在命令行中执行gulp命令就行了,gulp后面可以加上要执行的任务名,例如gulp task1
,如果没有指定任务名,则会执行任务名为default的默认任务。
gulp API
- gulp.src([‘src1’,’src2’]) 获取到想要处理的文件流
- gulp.task(‘server’,function(){ … } ) 或者gulp.task(‘server’, [‘task1’,’task2’]) 注册任务
- gulp.dest(‘dest’) 把流中的内容写入到文件中
- gulp.watch(‘src’, [‘task1’,’task2’]) 实时监测文件变动
- gulp.run(‘task1’,’task2’,’task3’) 运行任务,并行运行
- gulp.pipe(minify()) 导入到
gulp
的插件中
js文件压缩
gulp-uglify
插件用来压缩js文件。
css文件压缩
gulp-minify-css
插件用来压缩css文件。
html文件压缩
gulp-minify-html
插件用来压缩html文件。
js代码检查
gulp-jshint
插件,用来检查js代码。
js代码压缩混淆
gulp-uglify
文件合并
gulp-concat
插件,用来把多个文件合并为一个文件,我们可以用它来合并js或css文件等。
图片压缩
gulp-imagemin
插件来压缩jpg、png、gif等图片。
自动刷新
gulp-livereload
插件,当代码变化时,它可以帮我们自动刷新页面。
启服务
gulp-connect
这个插件是启一个web服务器
重命名
gulp-rename
插件,给文件重新命名
改变文件的扩展名
gulp-ext-replace
这个插件可以改变文件扩展名
删除
del
插件,删除文件
自动加载gulp插件
gulp-load-plugins
这个插件能自动帮你加载package.json
文件里的gulp插件
package.json
gulpfile.js
文件头部注释
gulp-header
这个插件是给文件头部加上自定义注释内容的
自动加上css3浏览器前缀
gulp-autoprefixer
这个插件会自动加上css3浏览器前缀
sass
gulp-sass
是自动编译sass的插件
compass
gulp-compass
浏览器自动刷新
browser-sync
浏览器自动刷新