Gulp压缩jscssimghtml提高页面打开速度

Posted Web刘教主

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gulp压缩jscssimghtml提高页面打开速度相关的知识,希望对你有一定的参考价值。

gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率。

压缩 js、css、img、html 代码可降低文件大小,提高页面打开速度。在不利用 gulp 时我们需要通过各种工具手动完成压缩工作。但如果js、css、html文件比较多时候,手动就比较麻烦,gulp这时候就可以派上用场了。

1. 全局安装 gulp:

    npm install gulp -g

gulp是基于nodejs,理所当然需要先安装nodejs

全局安装是为了能够在cmd命令行中的任意目录中使用

npm安装插件是从国外服务器下载,受网络影响大,可能出现异常

淘宝团队为我们分享了国内镜像,命令提示符执行npm install cnpm -g --registry=https://registry.npm.taobao.org;  注意:安装完后最好查看其版本号cnpm -v或关闭命令提示符重新打开

注:cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm


2.作为项目的开发依赖(devDependencies)安装:

    npm install gulp --save-dev

在本地项目中局部安装gulp 在本地项目中使用需要gulp插件

在本地项目中安装如下:

Gulp压缩js、css、img、html提高页面打开速度


使用gulp -v可以查看gulp的版本号

Gulp压缩js、css、img、html提高页面打开速度


3.新建一个package.json

package.json是基于nodejs项目必不可少的配置文件,它是存放在项目根目录的普通json文件

注意:json文件内是不能写注释的

这就是json文件

Gulp压缩js、css、img、html提高页面打开速度

前三项是必填

name: 项目名

version:项目的版本号

descrption:项目描述

其他可以不填

当然这个文件我们可以让它自动生成

使用  npm init  
前三项必填 后面直接回车跳过

最后is this OK?输入 y 回车

Gulp压缩js、css、img、html提高页面打开速度

此时项目的根目录会自动新建一个package.json文件


4.新建gulpfile.js 文件(必须这个名字)

gulpfile.js是gulp项目的配置文件,是位于项目根目录的普通js文件(其实将gulpfile.js放入其他文件夹下亦可)

我们先来压缩项目中所有的js文件

在 gulpfile.js 中写入以下代码

Gulp压缩js、css、img、html提高页面打开速度


在项目根目录 shift + 右键

Gulp压缩js、css、img、html提高页面打开速度

在命令行输入  gulp script 

不出意外会报错  是说压缩js的模块 gulp-uglify 找不到

// 获取 uglify 模块(用于压缩 JS)

var uglify = require('gulp-uglify')

虽然我们加载了模块但是本地中没有该模块 需要下载

使用 命令 npm install gulp-uglify  下载模块

Gulp压缩js、css、img、html提高页面打开速度


下载完成

Gulp压缩js、css、img、html提高页面打开速度

然后在 运行 gulp script 

Gulp压缩js、css、img、html提高页面打开速度

OVER!!!

此时项目根目录中会多个dist文件夹 里面有个 js 文件夹 存放了 所有压缩过的js文件


然后我们压缩 css文件

在 gulpfile.js 中先加载 压缩 css 的 gulp-minify-css 模块

// 获取 minify-css 模块(用于压缩 CSS) 
var minifyCSS = require('gulp-minify-css')

// 压缩 css 文件

// 在命令行使用 gulp css 启动此任务

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

    // 1. 找到文件

    gulp.src('css/*.css')

    // 2. 压缩文件

        .pipe(minifyCSS())

    // 3. 另存为压缩文件

        .pipe(gulp.dest('dist/css'))

})


在cmd命令行输入 gulp css 

如果报错 就 npm install gulp-minify-css 安装模块

在执行  gulp css 

然后我们继续压缩html文件


npm install gulp-minify-html 下载 压缩html的模块

// 压缩html插件

var minifyHTML = require('gulp-minify-html');

// 压缩html文件

// 在命令行使用 gulp htmlpage 启动此任务

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

  gulp.src('./*.html')

    .pipe(minifyHTML())

    .pipe(gulp.dest('./dist'));

});

执行 gulp htmlpage


最后压缩图片


// 压缩图片插件

var image = require('gulp-imagemin');

// 压缩图片文件

// 在命令行输入 gulp image 启动此任务

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

  gulp.src('./images/*')

    // 压缩

    .pipe(image())

    // 保存

    .pipe(gulp.dest('./dist/images'));

});


所有文件压缩完后 存在一个问题 就是

在前面的那些任务当中,当你只修改其中一个文件的话,其实所有的文件都会被重新编译一次。当编译的文件比较多的时候,所需要的时间就会大大增加。这时候,我们就要用到一个新的插件 gulp-changed.

npm install --save-dev gulp-changed

需要在 gulpfile.js 中加载

// 检测更新单个文件插件

var changed = require('gulp-changed');

这里以压缩js为例 其他按照更改即可

Gulp压缩js、css、img、html提高页面打开速度


最后一个问题就是每次改完源文件 都需要 手动去 执行 压缩文件

gulp script

gulp css

gulp htmlpage

gulp images

任务太多 手动执行命令效率太低

我们可以让 gulp 自动监听 并压缩所更改的文件

Gulp压缩js、css、img、html提高页面打开速度

把这些任务都监听后,我们要做的就是输入命令运行:

gulp

这样我们文件有修改,就会自动运行



以上是关于Gulp压缩jscssimghtml提高页面打开速度的主要内容,如果未能解决你的问题,请参考以下文章

gulp自动化构建项目过程

gulp学习笔记1

Gulp的那些事

使用 gulp 压缩图片

gulp简单安装和入门(适用刚接触gulp的同学)

续Gulp使用入门三步压缩图片