gulp入门教程

2022-10-20 10:15:59发布
42

提示 :码云有gulp的例子


gulp是什么?

在前端开发中,你是否有遇到以下这些问题?

1、需要手动合并雪碧图

2、需要手动压缩js、css

3、每次编写完代码后,需要手动刷新浏览器看效果

4、手动压缩图片

......

gulp的主要作用就是帮助我们自动完成上面的那些繁琐的工作。


安装gulp

gulp是基于node.js的,所以你需要先安装node.js。安装完node后,打开命令窗口,输入 npm install gulp -g。如下图 :(提示 : -g代表全局安装)

安装若成功后,输入gulp -v 可以查看gulp版本


hello world

下面我们用一个hello world的程序,来演示下如何使用gulp

1、在项目目录下,安装gulp

2、在项目目录下,新建一个gulpfile.js的文件,需要注意的是这里的名字一定要是gulpfile,不能是其它的。

3、编写gulpfile.js,如下 :

const gulp = require('gulp');
 
gulp.task('hello', function(){
	console.log('hello world');
})

4、在项目目录下,打开命令窗口运行gulp命令 : gulp hello 。如下 :

让我们来分析下上面的代码  :

const gulp = require('gulp');  引入gulp,require是node.js引入库的写法

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

console.log('hello world');

});

gulp下有个task方法,这个方法用来定义gulp任务。第一个参数是任务的名字,第二个参数是一个回调函数,即运行了这个任务后,我们要干什么。这里我们只是很简单的console.log


gulp的5大函数

实际上gulp并没有太多的功能。其它功能都是使用第三方的插件来完成。比如上面的说的压缩图片的功能就要使用一个叫imagemin的插件来完成。gulp的常用函数有5个,分别是 :

task:起任务用的

src:读取文件

dest:输出文件

watch:监听文件,若文件发生变化则去处理一些逻辑

pipe:可以理解为一个功能管道

一般使用gulp的流程是这样的 :

gulp.task('任务名字', function(){
	return gulp.src('读取要处理的文件')
		.pipe('第三方插件')
		.pipe(gulp.dest('输出文件'));
});

下面我们来举个实际点的例子

复制文件

gulp.task('copy', function(){
	return gulp.src('index.html')
		.pipe(gulp.dest('dist'));
});

这个例子首先任务名字是copy,然后我们使用src方法去读取index.html这个文件,最后我们使用dest输出这个文件到一个名为dist的文件夹下。


常用的gulp插件

gulp-connect:一个本地的服务器
gulp-uglify:压缩js

gulp-minify-css:压缩css

gulp-imagemin:压缩图片

gulp-css-spriter:合并精灵图

例子 :

let gulp = require('gulp');
let spriter = require('gulp-css-spriter');
 
gulp.task('css', function() {
    return gulp.src('./css/style.css')//比如recharge.css这个样式里面什么都不用改,是你想要合并的图就要引用这个样式。 很重要 注意(recharge.css)这个是我的项目。别傻到家抄我一样的。
        .pipe(spriter({
            // The path and file name of where we will save the sprite sheet
            'spriteSheet': './dist/images/spritesheet.png', //这是雪碧图自动合成的图。 很重要
            // Because we don't know where you will end up saving the CSS file at this point in the pipe,
            // we need a litle help identifying where it will be.
            'pathToSpriteSheetFromCSS': '../images/spritesheet.png' //这是在css引用的图片路径,很重要
        }))
        .pipe(gulp.dest('./dist/css')); //最后生成出来
});


如何使用gulp插件?

1、打开 https://www.npmjs.com/ ,在搜索栏中输入你想查询的gulp插件。这里我们以gulp-connect为例,如下图 :

2、搜索到该插件后,在下面会看到具体的使用方法

安装方法

使用案例

可以看到第一步是引入gulp-connect插件,第二步是使用server这个方法来建立一个服务器。其它插件的使用步骤都是大同小异,这里就不在一一介绍其它插件怎么使用了。


watch函数

watch函数的作用上面已经介绍过了,下面让我们来具体写个例子了解下。这个例子是这样的,当文件发生改变时,自动刷新浏览器。

这个例子需要用到的插件是gulp-connect

const gulp = require('gulp');
const connect = require('gulp-connect');
 
gulp.task('server', function(){
	connect.server({
		root : './',    //项目目录
		livereload: true  //这里要为true,文件发生改变时才会刷新浏览器
	});
	gulp.watch('index.html', function(){
		return gulp.src('index.html').pipe(connect.reload());  //使用watch监听index.html,当发生改变时,调用reload函数刷新浏览器
	});
});