浅谈前端构建工具gulp

1、gulp

gulp是一个前端自动化的构建工具,采用这个工具,可以提升性能和效率。

 

2、为什么要用gulp

1) .js和.css属于静态文件,由于浏览器存在缓存机制,为了避免缓存带来的问题,可以利用构建工具,给每一个静态文件添加一个版本号以区别文件。

2) 性能优化:文件合并,减少http请求;文件压缩,减少文件体积,加快下载速度;

3) 效率提升:自动添加CSS3的vendor前缀;代码分析检查改正;使用MVC和MVVM的框架后,可在提交之前使用gulp自动跑一遍单元测试。

 

3、gulp的使用

1) 安装gulp之前,先安装node.js环境,因为gulp是基于node.js的前端构建工具:

在命令行执行:npm install --global gulp

2) 在开发项目上,安装项目依赖:

在命令行执行:npm install --save-dev gulp

3) 在项目根目录下创建一个文件,用来配置gulp的相关task,文件内容示例如下:

var gulp = require('gulp'); // 告知node先局部(node_modules)查找gulp包,找不到再去全局查找,找到后赋值给gulp变量,就可以使用了。
gulp.task('helloWorld', funcion() { // 配置gulp任务,指定任务名为helloWorld
    console.log('Hello world');
});

4) 执行任务

在命令行执行:gulp helloWorld

 

4、gulp常用插件:

run-sequence:让gulp任务,可以相互独立,解除任务间的依赖,增强task复用

browser-sync:静态文件服务器,同时也支持浏览器自动刷新

del:删除文件/文件夹

gulp-coffee:编译coffee代码为Js代码,使用coffeescript必备

coffee-script:gulpfile默认采用js后缀,如果要使用gulpfile.coffee来编写,那么需要此模块

gulp-nodemon:自动启动/重启你的node程序,开发node服务端程序必备

yargs:用于获取启动参数,针对不同参数,切换任务执行过程时需要

gulp-util:gulp常用的工具库

gulp-uglify:通过UglifyJS来压缩JS文件

gulp-concat:合并JS

gulp-sourcemaps:处理JS时,生成SourceMap

gulp-less:将less预处理为css

gulp-sass:将sass预处理为css

gulp-autoprefixer:使用Autoprefixer来补全浏览器兼容的css。

gulp-minify-css:压缩css。

connect-history-api-fallback:开发angular应用必须,用于支持HTML5 history API.


5、gulp的几个方法:

1) .src():文件的源路径;

① *.sass:匹配当前目录下的所有sass文件;

② **/*.sass:匹配当前目录及其子目录下的所有.sass文件;

③ !test.scss:匹配当前目录下除test.sass外的文件;

④ *.+(scss|sass):匹配当前目录下的.scss和.sass文件。

2) .pipe():是任务运行的管道;

3) .dest():是任务结束后的输出路径;

 

5、gulp简单示例:将sass预处理(编译)为css

var gulp = require('gulp');  
var sass = require('gulp-sass');  
gulp.task('sass', funcion() { // 配置gulp任务,指定任务名为sass  
	return gulp.src('css/*.sass') 
		.pipe(sass()) 
		.pipe(gulp.dest('css'));  
}); 

源路径‘css’里面的.sass文件:

div {
	width: percentage(3/8);
}

在命令行执行:gulp sass,输出路径‘css’里面生成同名的.css文件:

div {
	width: percentage(0.375);
}

 

6、gulp常用插件示例:

1) 语法检查:一般和监听文件变化配合使用,当文件修改时检查是否有语法错误,若有语法错误则在命令行中输出错误信息。

2) 文件合并:把所有.js文件合并成一个.js文件,把所有.css文件合并成一个.css文件。

3) 文件压缩:压缩文件,也可以是合并后的文件。

4) 监听文件变化:监听文件是否修改,若修改的话就执行特定操作,比如语法检查、文件合并、文件压缩等。

var gulp = require('gulp');
var jshint = require('gulp-jshint'); // 语法检查
var concat = require('gulp-concat'); // 文件合并
var uglify = require('gulp-uglify'); // 文件压缩
var rename = require('gulp-rename'); // 重命名
// 语法检查
gulp.task('jshint', function() {
	return gulp.src('js/*.js').pipe(jshint()).pipe(jshint.reporter('default'));
});
// 文件合并与压缩
gulp.task('minify', function() {
	return gulp.src('js/*.js')
	 	.pipe(concat('all.js'))
 		.pipe(gulp.dest('js/dist'))
 		.pipe(uglify())
 		.pipe(rename({extname: '.min.js'})) // 也可以写成.pipe(rename('all.min.js');
 		.pipe(gulp.dest('js/dist'));
});
// 监听文件变化
gulp.task('watch', function () {
	gulp.watch('js/*.js', ['jshint', 'minify']);
});
// 注册缺省任务
gulp.task('default', ['jshint', 'minify', 'watch']);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Gulp是一种前端自动化工具,它可以帮助前端开发人员自动完成一些重复性工作,例如压缩CSS和JavaScript文件、自动刷新浏览器、合并文件等。 使用Gulp需要先安装Node.js和npm,然后使用npm安装Gulp。安装完成后,可以在项目的根目录下创建一个名为gulpfile.js的文件,该文件中定义了Gulp要执行的任务和任务的具体操作。 在gulpfile.js中,可以使用Gulp提供的API来定义任务。例如,可以使用gulp.task()方法定义一个任务,该方法接受两个参数:任务的名称和任务要执行的操作。可以使用gulp.src()方法指定要处理的文件,然后使用各种Gulp插件来执行各种操作,例如gulp-concat用于合并文件,gulp-uglify用于压缩JavaScript文件等。 最后,可以使用gulp.dest()方法将处理后的文件保存到指定目录。定义好任务后,可以在终端中使用gulp命令来执行任务,Gulp会自动执行任务并输出相关日志信息。 ### 回答2: Gulp是一个前端自动化工具,它通过编写简洁、易于理解的代码来帮助开发者自动化前端开发中的各种任务。 首先,Gulp使用简单且灵活。它使用流的概念,让开发者能够通过将任务连接在一起构建整个开发流程。开发者可以定义各种任务,如压缩文件、合并文件、编译代码等等,然后通过管道将这些任务链接在一起。这种方式使得构建前端项目变得非常容易,同时也让开发者能够根据自己的需求定制任务流程。 其次,Gulp有大量的插件可供选择。Gulp的插件系统非常强大,社区中有数以千计的插件可用。这些插件可以帮助开发者解决各种问题,如自动添加浏览器前缀、压缩文件、优化图片等等。开发者可以根据自己的需求选择合适的插件使用,从而提高工作效率。 另外,Gulp还具有良好的生态系统。无论是官方文档还是社区文档,都非常详细且易于理解。开发者可以很容易地找到所需的信息和教程,学习如何使用Gulp来优化自己的工作流程。 总的来说,Gulp是一个功能强大且易于使用的前端自动化工具。它能够帮助开发者提高工作效率,简化开发流程,同时也具有丰富的插件和优秀的生态系统。无论是小型项目还是大型项目,Gulp都是一个非常好的选择。 ### 回答3: Gulp是一个前端自动化工具,用于简化开发流程和提高工作效率。它基于流(stream)的概念,可以自动化处理和优化前端工作中的许多重复任务。 首先,通过在项目中配置gulpfile.js文件,可以定义各种任务(task)和相应的操作。可以使用Gulp来执行各种编译、压缩、合并、重命名、清理等操作,例如压缩CSS和JavaScript文件、编译Sass或Less、优化图像等等。这些任务可以按照开发者的需求进行自定义配置,满足不同项目的要求。 Gulp的使用也非常简单,只需要通过命令行运行gulp命令并指定要执行的任务即可。当有文件变动时,Gulp可以自动监听文件的变化并重新执行相应的任务,实时更新项目的输出。 此外,Gulp还支持插件生态系统,拥有大量的插件可供开发者选择使用。这些插件可以用于执行各种任务,例如自动生成CSS前缀、合并相同类型的文件、启动本地开发服务器等等。 总的来说,Gulp通过简化和自动化前端开发流程,大大提高了开发效率。它的简单易用和丰富的插件生态系统使得开发者能够根据项目需求快速搭建和优化前端工作流程。使用Gulp可以减少重复劳动,提高代码质量和开发效率,因此成为前端开发中不可或缺的工具之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值