npm 包 swg-rev-path 使用教程

前言

在前端开发中,通常需要引用一些静态资源,如图片、CSS、JS 文件等。在我们的代码中,我们通常会填写如下路径:

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

但如果你的网站或应用程序需要使用 CDN,或者你的资源包含不同的哈希值以实现 cache-busting 等,你需要动态地修改静态资源的路径,而 swg-rev-path 这个 npm 包就能帮助我们达到这个目的。

swg-rev-path 简介

swg-rev-path 是一个 Node.js 模块,可用于修改文件名以及文件路径中的哈希值。它会分析指定的 HTML、CSS 或 JavaScript 文件,并更新您引用的静态资源的路径,以便于您可以在发布之前使用版本化 URL、CDN 等技术达到 cache-busting 的效果。

安装 swg-rev-path

使用 npm 全局安装 swg-rev-path:

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

使用 swg-rev-path

index.html 文件为例,这篇文章演示如何使用 swg-rev-path 更改引用的静态资源的路径。

  1. 首先,在 index.html 中,你需要使用 @@ 符号表示你要更新的文件路径。例如:
----- ---------------- ------------------------
---- --------------------- -----------
------- -------------------------------

注意:如果你的文件路径不包含 @@ 符号,则该路径将被视为绝对路径,并且不会更新,所以一定要将资源路径用 @@ 包裹起来。

  1. 接下来,在命令行里输入以下命令:
------------ -- ---------- -- -----

这个命令的意思是,修改 index.html 文件中引用的静态资源的路径,并将更新后的文件输出到 /dist 目录中。

  1. 完成上述步骤后,你会发现 /dist 目录中的 index.html 中的资源路径已被更新为以下方式:
----- ---------------- -------------------------------
---- ---------------------------- -----------
------- --------------------------------------

如你所见,在每个文件名后面加上了哈希值(如 .93e94525.9b31f301),这样浏览器可以根据哈希值来判断是否需要更新缓存。同时,文件路径也被更新为绝对路径,这样可以避免路径错误问题的发生。

高级使用

如果你使用 swg-rev-path 进行深度优化,并且需要根据不同的环境进行不同的更新,则你可以指定多个环境并使用 -c 参数指定配置文件。

  1. 创建一个 rev-path.config.js 文件,配置如下所示:
-------------- - -
  -------- -
    ---- -
      ----- -------------
      ----- -------
    -
  --
  --- -
    ---- -
      ----- -------------
      ----- ----------
    --
    ------- -
      ---- -----------
      ------- ------------- ----------
    -
  --
  -------- -
    ---- -
      ----- -------------
      ----- ---------------
    --
    ------- -
      ------- ----
    --
    ---- -
      -------- --------- ----------
    -
  -
-

在上述示例配置文件中,我们配置了三个环境:

  • default 为默认环境,设置了文件 index.html 的路径,默认更新所有引用的资源路径。
  • qa 环境,设置了文件 index.html 的路径为 /qa/dist。同时,将所有 .css 后缀文件修改为 .min.css,同时排除 img/*.svgjs/*.js 文件不做修改。
  • staging 环境,设置了文件 index.html 的路径为 /staging/dist。同时,将所有文件前缀修改为 s_。并且只更新 .cssjs/*.js 文件。
  1. 接下来,在命令行里输入以下命令,就可以根据你的环境名轻松切换不同环境的配置:
------------ -- ------------------ -- --

这个命令的意思是,使用 rev-path.config.js 文件中 qa 环境的配置文件,更新文件 index.html 中应用的所有资源路径,并将更新后的文件输出到 /qa/dist 目录中。

总结

使用 swg-rev-path 包,可以轻松地重命名静态资源文件名,并更新引用文件的文件路径,以便于实现 cache-busting。配置文件的使用,可以实现高级的操作,多个环境间互相独立,实现高效的开发、测试和发布。

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


猜你喜欢

  • npm 包 skeleton-generator 使用教程

    在前端开发中,我们经常需要创建项目骨架,如何快速创建并规范化骨架,是一个值得探讨的问题。而 npm 包 skeleton-generator 就提供了一个快速创建项目骨架的解决方案。

    2 年前
  • npm 包 grunt-depmod 使用教程

    在前端开发中,我们常常需要使用到各种工具来提高效率和代码质量。其中,构建工具是不可或缺的一部分。在构建过程中,自动化处理依赖关系是非常重要的,而 grunt-depmod 就是一个很好的工具来完成这一...

    2 年前
  • npm 包 babel-preset-frack-core 使用教程

    前言 在前端开发中,ES6 已经成为主流的语言,而 Babel 则成为了一个必不可少的工具,用于将 ES6 的代码转换成浏览器可以执行的版本。babel-preset-frack-core 作为一个常...

    2 年前
  • npm 包 bleachcss-probe 使用教程

    前言 在前端开发过程中,优化 CSS 代码通常是刻不容缓的任务,因为大量的 CSS 代码会降低页面的加载速度,影响用户体验。而 bleachcss-probe 包就是一款可以帮助开发者优化 CSS 的...

    2 年前
  • npm 包 bpwa-config 使用教程

    前言 随着 Web 应用的发展,PWA(Progressive Web Apps)在业界也日渐热门。PWA 作为一种新兴的 Web 应用模式,在提供了优秀的用户体验的同时,也为前端开发人员带来了更多的...

    2 年前
  • npm 包 soft-indexeddb 使用教程

    什么是 soft-indexeddb soft-indexeddb 是一个基于 IndexedDB 的库,提供了一些便利的方法来对 IndexedDB 进行操作,支持异步写入和读取等,能够快速实现 I...

    2 年前
  • npm 包 lottery-balls-maps 使用教程

    前言 前端开发中使用的许多包都是通过 npm 安装的,可以大大提高工作效率。其中,lottery-balls-maps 是一个非常实用的 npm 包,它可以生成彩票的摇奖动画效果。

    2 年前
  • npm包react-native-data-grid使用教程

    引言 React Native是一种使用JavaScript和React构建本地移动应用程序的框架。相信大家在使用React Native开发过程中一定需要用到相关组件来完成数据渲染。

    2 年前
  • npm 包 react-image-progressive 使用教程

    React 是一种流行的前端框架,它提供了开发单页应用程序的方便和高效性。许多 React 应用程序都需要加载大量的图片资源,这可能会导致加载时间变慢,用户体验不佳。

    2 年前
  • npm 包 in-text-citations-parser 使用教程

    in-text-citations-parser 是一个npm包,它用于解析文本中的引用。该模块可用于提取并处理引用以及它们的上下文字。可以直接在前端进行使用。在本文中,我们将详细讨论该npm包,并提...

    2 年前
  • npm 包 azami 使用教程

    什么是 azami? azami 是一个用于在浏览器中显示日本式的图片瀑布流的 npm 包。它是基于 Masonry 的 JavaScript 库实现的,同时还支持可定制化的样式和过滤器。

    2 年前
  • npm 包 pdf-stream-cli 使用教程

    PDF 是一种常用的文档格式,而 PDF 流技术(PDF Stream)可以用于对大型 PDF 进行分段处理和批量处理。pdf-stream-cli 是一个基于 Node.js 的 npm 包,它为 ...

    2 年前
  • npm 包 healthcheck-prototype 使用教程

    在我们日常进行 Web 开发的过程中,经常需要检测应用程序的健康状况,以确保应用程序的可用性和可靠性。为了方便开发者进行健康状况检测,有人开发了一个名为 healthcheck-prototype 的...

    2 年前
  • npm 包 fql-react 使用教程

    随着前端技术的飞速发展,前端工程师们需要不断地学习新的技术和工具。其中,npm 包是一个非常重要的环节。在本文中,我们将介绍一个名为 fql-react 的 npm 包,它可以帮助我们更便捷地使用 R...

    2 年前
  • npm 包 homebridge-gpio-switch 使用教程

    在前端开发中,控制智能设备的能力变得日益重要。随着人们对智能家居的需求不断增加,在 Homebridge 中使用 GPIO 开关控制器可以更轻松地实现控制设备的目标。

    2 年前
  • 前端技术文章:npm 包 immutable-sorted-map 使用教程

    在现代 Web 开发中,前端工程师使用 npm 不仅能够获得开源社区的众多资源,也能够更好地管理项目依赖。其中一款常用的 npm 包是 immutable-sorted-map,它提供了一种可排序、不...

    2 年前
  • npm 包 is-system-error 使用教程

    介绍 is-system-error 是一个 npm 包,用于判断错误是否是系统错误。它们由操作系统发出,并且具有与特定操作系统相关的代码。通过检查错误的 errno 属性和 platform 属性,...

    2 年前
  • npm 包 openapi-operations 使用教程

    在前端开发中,我们常常需要与后端服务器进行数据接口的交互。而 OpenAPI(以前称为 Swagger)是一种用于描述 RESTful API 的规范和工具集,是前后端协作开发中非常重要的组件。

    2 年前
  • npm 包 mongoose-express-error-handler 使用教程

    介绍 本文将介绍 npm 包 mongoose-express-error-handler 的使用教程,此包用于处理 Mongoose 数据库在 Express 中的错误,并提供了一些默认的错误处理逻...

    2 年前
  • npm 包 skipgram 使用教程

    在前端开发中,我们经常会需要处理文本数据并进行相应的分析和处理。而在文本数据分析中,经常出现的问题是如何将长文本切分成单个词汇并对词汇进行分析。这时候,就可以采用自然语言处理技术中的 skipgram...

    2 年前

相关推荐

    暂无文章