npm 包 swg-gulp-rev 使用教程

在前端开发中,代码版本控制是非常重要的一部分,它可以有效地维护代码的稳定性和可读性。而 npm 包 swg-gulp-rev 就是帮助前端开发者实现静态资源版本控制的利器。

1. swg-gulp-rev 简介

swg-gulp-rev 是一个基于 Gulp 的 npm 包,它可以在前端代码打包的过程中对静态资源进行版本控制,例如 CSS、JavaScript、图片等。为了防止缓存造成的问题,文件名被 hash 转换后可以保证资源被最终用户访问时具有唯一版本号的特点。经过 swg-gulp-rev 处理的静态资源,浏览器缓存失效时,能够重新获取最新的版本。

2. 安装 swg-gulp-rev

使用 npm 安装 swg-gulp-rev:

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

3. 使用 swg-gulp-rev

3.1 配置 Gulp 任务

在 Gulp 任务中加入以下代码,创建任务 rev:

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

3.2 在 HTML 文件中使用映射文件

在 HTML 文件中使用以下代码进行静态资源的调用:

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

前面部分的路径是你 web 服务器中的资源路径,后面部分的文件名含有文件的 hash 值。此时需要一个映射文件(rev-manifest.json)来替换成真正的文件名和路径,将映射文件保存在 rev 目录中:

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

3.3 解决 CDN 资源无法获取映射文件的问题

因为 CDN 资源需要的是真实文件名的访问路径,而不是被 hash 转换后的文件名,所以最好把映射文件上传到 CDN 上。但是,因为映射文件依然是以文件名后缀为结尾的,会被识别为静态资源之一,所以不能直接上传,需要服务器进行特殊的解决方案。

例如,如果服务器使用的是 Nginx 转发静态资源请求,那么可以配置如下:

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

以上配置的重点是最后一行,会先在资源目录下寻找文件,如果找不到,就到映射文件目录下查找。

4. 总结

swg-gulp-rev 的使用方法很简单,它可以很好地解决生产环境静态资源版本化的问题。同时,一定要掌握与 CDN 配合,解决映射文件上传到CDN后无法获取的问题。

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


猜你喜欢

  • NPM 包 graphql-tools-bchen 使用教程

    什么是 graphql-tools-bchen? GraphQL-Tools-bchen 是一款基于 GraphQL 的工具包,能够简化开发过程,提高开发效率。该工具包包含一些列重要的 API,能够轻...

    2 年前
  • NPM包optical-kerning使用教程

    简介 Optical-kerning是一个专门为网页设计师和前端开发人员设计的一个 JavaScript 库,它用于实现更好的字体对齐效果。在使用 optical-kerning 之后,文字的间距将会...

    2 年前
  • npm 包 slider-index 使用教程

    slider-index 是一个基于 JavaScript 的 npm 包,用于帮助 web 开发者快速创建幻灯片效果的轮播组件。它提供了丰富的配置项,使得轮播组件功能更加强大,使用更加灵活。

    2 年前
  • npm 包 tizen-sdb 使用教程

    简介 tizen-sdb 是面向 Samsung Tizen 平台的一款基于 Node.js 的 CLI 工具,通过该工具可以在电脑上进行 Tizen 设备的调试和管理工作。

    2 年前
  • npm 包 yake 使用教程

    前言 近年来,随着技术的飞速发展和应用需求的不断增加,一些流程、构建和自动化工具逐渐在前端领域中得到了广泛的应用。yake 就是一款基于 Node.js 的自动化构建工具,它可以让前端开发者更方便地进...

    2 年前
  • npm 包 flexi-layouts 使用教程

    简介 flexi-layouts 是一款轻量级的 npm 包,旨在为前端开发者提供一个灵活、简便的方法来创建各种布局。它基于 flexbox 布局,能够帮助开发者快速创建现代化的响应式页面。

    2 年前
  • NPM 包 tdaa-ui 使用教程

    前言 tdaa-ui 是一款基于 React 的 UI 组件库,提供了丰富的组件和样式库,适用于开发各种 Web 应用。本篇文章将介绍如何在自己的项目中使用 tdaa-ui 包,包括安装、使用方法和示...

    2 年前
  • NPM 包 Snape-config 的使用教程

    介绍 Snape-config 是一个基于 Node.js 平台的 npm 包,它能够帮助前端开发者更方便地管理项目的配置。 Snape-config 提供了一套易用的 API,可以实现以下功能: ...

    2 年前
  • npm 包 1tree-json 使用教程

    开发过程中,我们经常需要处理 JSON 数据,尤其是前端开发。在这个过程中,1tree-json 这个 npm 包能够为我们提供极大的便捷和效率。本文将带领大家了解 1tree-json 的使用方法和...

    2 年前
  • npm包 1tree-schema使用教程

    前言 1tree-schema是一个基于JavaScript的npm包,用于生成数据模型和模式验证。本文将介绍1tree-schema的功能和使用方式,以及如何在前端开发中使用它。

    2 年前
  • npm 包 @endeo/decoder 使用教程

    在前端开发中,数据的解析和处理是非常重要的一环。@endeo/decoder 这个 npm 包提供了简单易用且高效的解码器,支持多种数据格式的解码和处理,包括 JSON、XML 和二进制流。

    2 年前
  • npm 包 @hnct/uicommon 使用教程

    在前端开发中,我们经常需要使用一些 UI 组件来实现网页的交互效果。使用 UI 组件可以使我们的开发效率更高,同时也可以提升用户体验。在这个过程中,我们会使用很多第三方库和工具来帮助我们完成开发。

    2 年前
  • npm 包@nfcampos/react-native-blur 使用教程

    1.介绍 @nfcampos/react-native-blur 是一个基于 React Native 的模糊效果组件库。它支持在 iOS 和 Android 平台上,使用高效的 GPU 模糊方式渲染...

    2 年前
  • npm 包 @mojule/events 使用教程

    什么是 @mojule/events? @mojule/events 是一款用于事件分发和监听的 JavaScript 库,它可以帮助前端开发者快速构建响应式的前端应用程序。

    2 年前
  • npm 包 @nfcampos/react-native-htmlview 使用教程

    前言 在 React Native 开发中,我们时常需要展示 HTML 内容。而 @nfcampos/react-native-htmlview 是一个非常实用的 npm 包,可以将 HTML 转换为...

    2 年前
  • npm 包 enbyte 使用教程

    在前端开发中,我们常常需要在不同的数据传输渠道中进行数据的转换,特别是当我们需要从二进制数据中获取信息或将信息转换为二进制数据时。enbyte 是一个 npm 包,它提供了一个便捷的方法来进行字符串和...

    2 年前
  • npm 包 generator-webpack-2-es-6 使用教程

    1. 简介 generator-webpack-2-es-6 是一个用于生成基于 webpack 2 和 ES6 构建的前端项目的 npm 包。它可以帮助开发者快速搭建一个基于 webpack 2 和...

    2 年前
  • NPM包mojule-transform使用教程

    简述 mojule-transform是一个npm包,提供了一种将模型数据转换为其他格式的工具。它是一种基于扩展现有数据模型的方法,通过将模型中的数据映射到新的格式,使得数据相对应。

    2 年前
  • npm 包 react-native-advanced-styles 使用教程

    前言 React Native 是当前非常流行的移动端跨平台开发框架,它可以将 Javascript 代码编写成原生的移动应用,使得开发人员可以通过 JavaScript 和 React 的技术栈来进...

    2 年前
  • ng2-jsoneditor-forked-by-dmitrio 使用教程

    什么是 ng2-jsoneditor-forked-by-dmitrio ng2-jsoneditor-forked-by-dmitrio 是一个 Angular 2+ 的组件库,旨在提供一个可视化的...

    2 年前

相关推荐

    暂无文章