gulp

一、gulp是什么

gulp 是基于 node 实现 Web 前端自动化开发的工具,利用它能够极大的提高开发效率。在 Web 前端开发工作中有很多“重复工作”,比如压缩CSS/JS文件。而这些工作都是有规律的。找到这些规律,并编写 gulp 配置代码,让 gulp 自动执行这些“重复工作”。

二、安装gulp

使用 gulp 需要全局安装和本地安装。

1、全局安装

全局安装的意思就是以后在电脑的每一个位置都可以使用 gulp 的命令,全局安装也只用进行一次,安装成功后,以后再次使用无需安装。

键入如下命令:

cnpm install gulp -g

出现如下提示,说明安装成功了。

2、本地安装

本地安装是如果你需要使用 gulp,每次都要进行安装的,这里新建一个 gulp-demo 文件夹用于演示。

命令行切换到 gulp-demo 目录,用如下命令创建一个配置文件:

npm init --yes

如下所示,创建成功:

已经初始化好配置文件了,键入如下命令本地安装 gulp:

cnpm install gulp --save-dev   // 因为 gulp 是开发依赖,所以使用 --save-dev

完毕,如果成功的话,就可以在刚刚生成的配置文件 package.json 中,看到安装信息了:

三、使用gulp

安装好 gulp 之后,就可以使用它来压缩代码了。

1、压缩js

压缩 js 文件是需要安装 gulp-uglify 这个插件的。

cnpm install gulp-uglify --save-dev

安装完毕,为了演示,初始化了一下目录结构,如下:

|--gulp
|     |--dist
|     |--src
|          |--js
|              |--test.js
|     |--gulpfile.js
|     |--package.json
|     |--node_modules

 逐一介绍下每个文件夹的作用,src 文件夹就是源文件,目录下 js 文件夹用于放置 js 文件,目前放置了一个 test.js,用于测试;dist 文件夹用于待会放置经过 gulp 压缩后的 js 代码;gulpfile.js 文件是一个只要使用 gulp 就必须存在的一个配置文件,且名字不能更改;

下面是 gulpfile.js 文件的内容:

上面代码首先引入了 gulp 和 gulp-uglify,然后就可以使用 gulp 对象的方法了,

  • task(...):新建一个任务,第一个参数为字符串,值随意,最好取一个有意义的名字,这里这个任务的作用就是用来压缩 js 代码的,所以叫 min-js 好了。第二个参数是一个函数,也就是配置 min-js 任务的具体内容。
  • src(...):对哪个目录里面的哪些文件进行处理,上面的 'src/js.js' 代表了对 'src/js' 目录下的所有 js 文件进行处理。
  • pipe(uglify()):把压缩 js 的任务加入队列。
  • pipe(gulp.dest('dist/js'):把压缩后的 js 文件输出到 'dist/js' 目标目录。

下面是 test.js 的文件内容:

正式开始键入命令进行压缩了:

gulp min-js

出现如下提示,说明压缩成功了:

也可以打开 dist 文件夹,看下成果,如下所示。

 空格和换行已经全部去掉了。压缩成功。而且还自动在 dist 目录中给我们创建了 js 文件夹。

2、压缩css

压缩 css 文件是需要安装 gulp-clean-css 插件的,来键入如下命令安装一下:

cnpm i gulp-clean-css -D   // -D 是 --save-dev 的简写,说明是开发依赖

如图所示,安装成功。

接着上面的目录结构继续,在 src 目录下,新建 css 文件夹,该文件夹下新建一个样式文件 style.css,以下是最新的目录结构和 style.css 文件的具体内容。

接着,编写 gulpfile.js 文件,添加压缩 css 文件的代码,如下图所示:

接着,就可以在命令行执行压缩 css 文件的命令了。

gulp min-css

如下图所示,压缩  css  文件成功。自动在dist目录下,生成了 css 目录和压缩后的 style.css 文件。

3、编译less

less 是可以方便我们书写 css 样式的,但是浏览器是不认识的,必须经过编译成普通的 css 文件,才会被浏览器认识,使用 gulp 也可以做到,首先安装 gulp-less 插件:

cnpm i gulp-less -D

如下图所示,安装成功:

 

接着上面的目录结构继续,在 css 文件夹中新建一个 index.less 文件,最新目录结构和 index.less 文件内容如下:

接着,编写 gulpfile.js 文件,引入 gulp-less 和创建编译 less 文件任务,如下图所示:

最后,就可以进行编译了:

gulp compile-less

如下图所示,成功:

4、自动监测文件的改变

手动执行gulp命令,是可以进行压缩,编译等功能,但是并不时实时的,也就是说,如果希望我改变了一些代码,会自动进行压缩,编译等时,需要编写gulpfile.js文件,编写实时监测的代码,如下:

现在,就可以执行 gulp 命令,进行实时监控了:

gulp

我现在尝试改变了一下 css 文件,看终端发生变化了,并且 dist/css 中的 style.css 也改变了。

原文地址:https://www.cnblogs.com/xulinjun/p/12942828.html