npm 包 simply-gulp-rev-collector 使用教程

在前端开发过程中,我们经常需要对静态资源进行版本控制,这样有助于缓存更新和优化页面性能。而 gulp 是一个在前端开发中广泛使用的自动化构建工具,它有许多插件可以协助我们完成这些任务。其中一个非常常用的插件是 gulp-rev,它可以为静态资源生成唯一的版本号,并将版本号添加到文件名中,同时生成对应的 manifest 文件。而 simply-gulp-rev-collector 是一个用于根据 manifest 文件替换文件路径的 gulp 插件,本文将为你介绍该插件的使用方法。

安装

首先需要在项目中安装 gulp 及相关插件和 simply-gulp-rev-collector:

--- ------- ---------- ---- -------- ------------------ -------------------------

使用

1. 生成版本号

在 gulpfile 中定义一条 gulp-rev 任务,用于为静态资源生成版本号,例如:

----- ---- - ----------------
----- --- - --------------------

---------------- -- -- -
  -- ------
  ------ ------------------------
    -- -----
    ------------
    -- ------- ---- --
    ------------------------
    -- ----- -------- --
    ---------------------------------------------
    -------------------------
---

2. 替换文件路径

接着,定义一条 revCollector 任务,用于根据 manifest 文件替换静态资源的路径:

----- ---- - ----------------
----- ------------ - -------------------------------------

------------------------- -- -- -
  ------ --------------------------- -----------------
    -------------------- -- ------------------------- ---
      ------------- ----- -- -----------
      ---------------- -
        ------ ------------
        ----- ----------
      -
    ---
    -------------------------
---

其中,revCollector 的输入路径包含了我们之前生成的 manifest,以及需要替换的 HTML 和 CSS 文件。

配置项解析:

  • replaceReved(默认为 false)指定是否替换已经有版本号的路径。

  • dirReplacements 用于指定 directory → directory 的映射关系,将某些 directory 中的文件替换为另一个 directory 中的文件。例如上述配置中,css 目录下的文件路径将被替换为 /dist/css 目录下的路径。

配置完成后,运行任务:

---- ---
---- ------------

至此,你的静态资源的版本号就已经生成,并且路径已经被正确替换。

示例

假设你有如下的项目结构:

- ----------
- ---
  - ---------
- --
  - -------
- -----------
  1. gulpfile.js 中定义 gulp-rev 任务:
----- ---- - ----------------
----- --- - --------------------

---------------- -- -- -
  ------ ------------------------ -------------
    ------------
    --------------------------
    ---------------------
    ---------------------------
---

这个任务将为 CSS 和 JS 文件生成版本号,同时生成 manifest 文件。

运行 gulp rev 后,可以得到一个类似于下面的 manifest:

-
  ---------------- ---------------------
  ------------- ------------------
-
  1. 定义 simply-gulp-rev-collector 任务:
----- ---- - ----------------
----- ------------ - -------------------------------------

-------------------- -- -- -
  ------ -------------------------- ----------------
    --------------------
      ------------- -----
      ---------------- -
        ------ --------
        ----- -------
      -
    ---
    ---------------------------
---

这个任务将根据 manifest 文件替换 HTML 中的文件路径,同时生成处理后的 HTML 到 dist 目录。

运行 gulp collect 后,你会得到处理后的 index.html

--------- -----
------
------
  ----- ----------------
  -------------------------------- ---------------
  ----- ---------------- --------------------------------
-------
------
  ------- --------------------------------------
-------
-------

此时你的静态资源已经成功地完成版本控制。如果你运行 gulp collect 多次,插件会自动替换已经有版本号的文件,保证版本号唯一且正确。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005668081e8991b448e29d1


猜你喜欢

  • npm 包 strawpolljs 使用教程

    strawpolljs 是一个 npm 包,是针对 StrawPoll 网站的一个 API 封装,可以方便地实现创建、获取和删除 StrawPoll 投票功能。在前端类应用程序中使用 strawpol...

    3 年前
  • npm 包 `zhangxd-breaker` 使用教程

    简介 zhangxd-breaker 是一个前端开发中常用的 JavaScript 库,用于对异步请求进行断路器管理,防止雪崩现象的发生。它能够对多个请求进行管理和限制,保证系统的稳定性和健壮性。

    3 年前
  • npm 包 redux-network 使用教程

    简介 redux-network 是一款基于 Redux 的网络请求管理库,它可以帮助前端开发者更好地管理网络请求的过程,以提高应用程序的性能和用户体验。本文将介绍 redux-network 的基本...

    3 年前
  • npm 包 @sapien/core.layers 使用教程

    介绍 在前端开发中,使用 npm 包已经成为了日常必备的工具之一,而 @sapien/core.layers 正是一个优秀的 npm 包之一。它是如何协助我们完成前端开发工作的呢?本文将为您介绍如何使...

    3 年前
  • npm 包 ngx-platform-identifier 使用教程

    介绍 ngx-platform-identifier 是一个基于 Angular 的 npm 包,它提供了一种识别客户端和浏览器环境的方式。使用 ngx-platform-identifier,您可以...

    3 年前
  • Notable-editor-images: 前端编写文章工具包——使用教程

    随着前端开发的快速发展,现在越来越多的前端开发者开始涉及到文本内容的编辑,而 Notable-editor-images 就是为这个需求而开发出来的一个工具包。它可以帮助开发者方便地在文章编辑器中插入...

    3 年前
  • npm 包 ngx-truncate 使用教程

    在前端开发中,有时需要对文本内容进行截断处理,以达到更好的展示效果。ngx-truncate 是一个基于 Angular 的 npm 包,能够帮助开发者方便地对文本进行截断处理,支持多种截断方式和截断...

    3 年前
  • npm 包 cordova-plugin-alipush 使用教程

    阿里推送服务(Alibaba Cloud Push Service)是一款高效、可靠、安全、稳定的移动消息推送服务,可用于向 iOS、Android 和 Web 应用程序发送消息通知。

    3 年前
  • npm 包 draft-js-mathjax-plugin 使用教程

    前言 在前端开发中,有时需要在网页中插入数学公式,传统的方式是使用 LaTeX 语法,但是这需要一定的学习成本,并且不够直观,因此可以使用 MathJax 来解决这个问题。

    3 年前
  • npm 包 @cgjs/dgram 使用教程

    在前端开发中,网络通信是非常重要的一个环节。而在网络通信中,UDP 协议是一种高效而且实时性非常好的协议。@cgjs/dgram 是 npm 上一个比较好用的 UDP 封装库,可以帮助前端开发者轻松地...

    3 年前
  • npm 包 @cgjs/tty 使用教程

    在前端开发中,我们经常需要与终端进行交互,例如显示命令行提示信息,读取用户输入等等。Node.js 提供了一个标准的 tty 模块用于处理终端相关的操作,但它的 API 并不是很友好,使用起来比较繁琐...

    3 年前
  • NPM 包 @cgjs/url 使用教程

    @cgjs/url 是一个方便的 NPM 包,可帮助前端开发者更加高效地处理 URL。该包提供了一系列的工具函数,方便你进行 URL 相关的操作。 安装 在使用该包之前,你需要先安装它。

    3 年前
  • npm 包 coverage-badger 使用教程

    在前端开发过程中,测试覆盖率是一个非常重要的指标。它能够帮助我们发现代码中的漏洞和缺陷,并且有效地降低错误率。而 coverage-badger 这个 npm 包,就是专门用来帮助我们生成测试覆盖率徽...

    3 年前
  • npm 包 @cgjs/stream 使用教程

    通过 @cgjs/stream 这一 npm 包,我们可以在 Node.js 环境中对数据流进行操作,包括创建数据流、缓存、传输等等。这一模块的功能十分强大,能够很好地处理大量数据的情况,是前端开发的...

    3 年前
  • NPM 包 @antklim/api-to-cloud 使用教程

    随着云服务的普及,越来越多的前端开发人员开始使用云服务来搭建后端接口。但是云服务提供商的 API 细节往往复杂多变,很容易让开发人员感到困惑和疲惫。为了简化这一过程,@antklim 提供了一个名为 ...

    3 年前
  • 使用 npm 包 octicons-with-cafe

    在前端开发中,经常用到一些图标,以加强页面的表现力。然而,设计图标是一项很复杂的工作,需要专业的设计人员和软件;因此,开发社区中出现了大量的图标集合,以供前端开发者使用。

    3 年前
  • 使用 @withinpixels/ngx-dnd 实现前端拖拽功能教程

    随着 Web 应用程序体验的要求越来越高,拖拽功能已经成为了现代 Web 应用程序中所必须的一部分。而 @withinpixels/ngx-dnd 就是一款基于 Angular 的拖拽组件,它可以方便...

    3 年前
  • npm 包 parse-kv 使用教程

    在前端开发中,我们经常需要处理键值对的数据。在此背景下,NPM 包 parse-kv 能够为我们提供很好的帮助。本文将为大家介绍 npm 包 parse-kv 的使用方法,旨在帮助读者快速掌握该工具的...

    3 年前
  • npm 包 @cgjs/string_decoder 使用教程

    在前端开发中,我们常常要处理二进制数据,特别是处理从网络或本地读取的文件时。而字符串编码是区分数据的重要一环。在 JavaScript 中,我们可以使用 StringDecoder 模块来解决这个问题...

    3 年前
  • npm 包 @cgjs/tls 使用教程

    前言 在 Web 开发中,TLS(Transport Layer Security)在保证安全性方面扮演着重要角色。而在 npm 包中,@cgjs/tls 是一款提供了 TLS 连接的框架。

    3 年前

相关推荐

    暂无文章