美文网首页JavaScript 进阶营
Gulp useref插件的使用

Gulp useref插件的使用

作者: AlienPaul | 来源:发表于2019-07-23 21:30 被阅读3次

Useref插件的作用

Gulp的useref插件可以将HTML引用的多个CSS和JS合并起来,减小依赖的文件个数,从而减少浏览器发起的请求次数。

构建项目

编写package.json文件

dependencies加入gulpgulp-server的依赖。

{
    "...": "...",
    "dependencies": {
        "gulp": "4.0.2",
        "gulp-useref": "3.1.6"
    }
}

编写index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- build:css css/combined.css -->
    <link rel="stylesheet" href="s1.css">
    <link rel="stylesheet" href="s2.css">
    <!-- endbuild -->
</head>
<body>
    
</body>
</html>

关键之处在于:

    <!-- build:css css/combined.css -->
    <link rel="stylesheet" href="s1.css">
    <link rel="stylesheet" href="s2.css">
    <!-- endbuild -->

userref插件通过这两个注释,可以知道需要合并哪些CSS文件。

该注释的编写规则如下:

<!-- build:<type>(alternate search path) <path> <parameters> -->
... HTML Markup, list of script / link tags.
<!-- endbuild -->

再举个例子,如果我们要合并几个JS文件,并且把合并结果输出到项目输出目录中的scripts/combined.js,可以这么写:

<!-- build:js scripts/combined.js -->
<script type="text/javascript" src="scripts/one.js"></script>
<script type="text/javascript" src="scripts/two.js"></script>
<!-- endbuild -->

下面为了说明useref插件的效果,编写s1.csss2.css两个示例CSS文件:

s1.css

.c1 {
    color: black;
}

s2.css

.c2 {
    color: white;
}

最后我们编写gulpfile.js文件:

var gulp = require('gulp');
var useref = require("gulp-useref")

gulp.task("build", function() {
    return gulp.src("index.html")
    .pipe(useref())
    .pipe(gulp.dest("dest"))
});

执行npm install然后运行gulp build。会在项目的dest目录得到如下文件:

输出目录结构

其中index.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- 注意,此处两个CSS的引用已被替换为合并后的输出文件 -->
    <link rel="stylesheet" href="css/combined.css">
</head>
<body>
    
</body>
</html>

dest/css/combined.css文件:

.c1 {
    color: black;
}
.c2 {
    color: white;
}

显然,两个CSS文件已被合并到了一起。

注意事项

Useref插件仅仅将多个文件连接到一起,不会做任何额外处理(例如minify)。如果需要做其他操作,可以配合gulp-if插件使用:

gulp.task('html', function () {
    return gulp.src('app/*.html')
        .pipe(useref())
        .pipe(gulpif('*.js', uglify()))
        .pipe(gulpif('*.css', minifyCss()))
        .pipe(gulp.dest('dist'));
});

此例子中,不仅合并了JS和CSS文件,还同时对他们分别做了uglify和minify操作。

参考文献

Gulp useref插件 GitHub 链接

相关文章

  • Gulp useref插件的使用

    Useref插件的作用 Gulp的useref插件可以将HTML引用的多个CSS和JS合并起来,减小依赖的文件个数...

  • gulp的简单使用

    gulp使用流程:安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gu...

  • gulp之插件、监控、api使用

    一、gulp插件的使用 |--插件的实质:gulp插件的实质是Node转换流,它封装了-通过管道(pipeli...

  • gulp入门

    安装gulp 安装gulp插件 gulp使用与执行 在目录创建gulpfile.js文件 执行:gulp defa...

  • gulp资源整理

    Gulp官网 Gulp中文网 Gulp插件网 博客: 前端构建工具gulpjs的使用介绍及技巧 - 无双 gulp...

  • gulp 自用总结

    1.Browsersync https://browsersync.io/#install 配合gulp插件使用:...

  • 精通gulp常用插件

    本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp。不定期更新。可以到gith...

  • gulp汇总

    Pines Cheng’s Blog awesome-gulp中文版 一份gulp的资源,插件和使用实例清单, 致...

  • 用Gulp实现CSS压缩和页面自动刷新

    为什么要使用Gulp? 看了两天的Gulp,目前接触到Gulp及其一些插件的功能有: 编译LESS(或Sass)、...

  • 编写gulp插件

    本章讲解如何编写gulp插件,这里通过实现一个简单的插件功能来一步步讲解如何编写gulp插件。 gulp插件结构 ...

网友评论

    本文标题:Gulp useref插件的使用

    本文链接:https://www.haomeiwen.com/subject/lghzlctx.html