npm 包 revsion-manifest-webpack-plugin 使用教程

前言

当我们进行前端开发时,经常需要解决文件版本控制的问题,以便于在更新文件时,能够得知哪些文件需要更新。解决这个问题的一个常见方式是通过生成文件映射表,即将文件名与文件的版本号进行关联,以此来控制文件版本的更新。

在 webpack 中,有一个比较好用的插件叫做 revsion-manifest-webpack-plugin,它可以帮助我们生成文件映射表,方便我们进行文件版本控制。本文将介绍如何使用该插件。

安装和使用

  1. 安装
--- ------- ------------------------------- ----------
  1. 在 webpack 配置文件中添加插件
----- ---------------------- - --------------------------------------------

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

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

revsion-manifest-webpack-plugin 的 API 非常简单,只有一个参数对象,我们来看一下每个参数的含义。

  • fileName: 生成的映射表的文件名,默认为 manifest.json
  • rootAssetPath: 文件的根路径,默认为空字符串。
  • ignorePaths: 忽略的文件夹路径数组,默认为空数组。
  • ignoreExtensions: 忽略的文件扩展名数组,默认为空数组。

rootAssetPath 参数的作用是将配置的路径作为相对路径的根。例如,如果我们配置 rootAssetPath/static/,则文件的相对路径会从 /static/ 开始算。

ignorePathsignoreExtensions 参数的作用是控制哪些文件不需要生成映射表。

  1. 在 HTML 文件中引入映射表

我们需要在 HTML 文件中引入生成的映射表,并将文件的相对路径转换成映射表中的对应路径。代码如下:

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

在 HTML 中,我们使用了 HtmlWebpackPlugin 插件提供的 htmlWebpackPlugin.files 对象,其包含了映射表和当前代码块的入口文件路径等信息。

  1. 启动 webpack

现在我们可以启动 webpack 进行打包了。打包完成后,在指定的生成文件夹下会生成 manifest.json 文件。

例如,我们可以将 webpack 配置文件中的输出路径配置为 dist 文件夹,那么映射表的路径就是 dist/manifest.json

  1. 使用映射表

我们可以通过加载 manifest.json,来获取文件的版本号。

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

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

我们需要在代码中手动地将文件名替换成对应的带有版本号的路径。

示例

下面是一个完整的 webpack 配置文件,以及使用 revsion-manifest-webpack-plugin 的示例。我们假设需要生成具有版本号的静态资源文件名。

webpack.config.js:

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

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

public/index.html:

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

src/index.js:

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

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

总结

revsion-manifest-webpack-plugin 可以让我们非常方便地生成文件映射表,从而方便地控制文件版本控制。当我们在进行项目开发中遇到该问题时,可以考虑使用该插件。

在使用时,需要注意配置正确的参数,以确保生成的映射表能够正确地引用到项目中的文件。

希望这篇文章能够帮助你更好地使用 revsion-manifest-webpack-plugin,进行前端开发。

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


猜你喜欢

  • npm 包 lotr-random-names 使用教程

    欢迎来到本文的阅读。在这篇文章中,我们将向您介绍如何使用 npm 包 lotr-random-names。这个 npm 包的名称即表示它是有关于《魔戒》的,所以它是一个 JavaScript 库,旨在...

    2 年前
  • npm 包 gitbook-plugin-video2 使用教程

    在现代前端开发中,视频成为了越来越重要的一部分。然而,在 GitBook 中,要插入视频并不容易。为了解决这一问题,我们可以使用 npm 包 gitbook-plugin-video2 来快速轻松地插...

    2 年前
  • npm 包 @hotelquickly/basic-auth 使用教程

    在前端开发中,我们经常需要在应用程序中验证用户的身份。这时,使用 HTTP Basic 认证是一个简单而有效的方法。@hotelquickly/basic-auth 是一个方便的 npm 包,可以帮助...

    2 年前
  • npm 包 direape 使用教程

    简介 direape 是一个基于 React 和 Redux 的 UI 组件库,它提供了一些常用的组件,比如按钮、输入框、下拉框、表格等,可以帮助开发者快速地搭建一个完整的前端应用。

    2 年前
  • npm 包 fis3-parser-layout 使用教程

    前言 随着前端开发的日益复杂和多样化,我们经常需要使用一些自动化构建工具来进行前端工程化的开发,其中 FIS3 是非常常见的构建工具之一。而在 FIS3 中,需要经常使用到模板引擎来进行开发,这时候就...

    2 年前
  • npm 包 hard-source-webpack-plugin-purejs 使用教程

    随着前端开发变得越来越复杂,我们可能需要编写更多的代码来优化我们的项目,使其更加快速和高效。在这篇文章中,我们将介绍一个非常实用的 npm 包:hard-source-webpack-plugin-p...

    2 年前
  • npm 包 init-sass 使用教程

    在前端开发中,Sass 是一个十分有用的工具,能够极大地增加开发效率并改善代码质量。但是,为了使用 Sass,我们需要安装 Sass 的编译器,这个过程比较繁琐。而使用 npm 包 init-sass...

    2 年前
  • npm包 nn-scroll 使用教程

    nn-scroll 是一个基于 jQuery 的轮播图插件,可用于前端网站的开发。该插件的特点是易于使用,可以自定义多种轮播效果和动画,支持响应式布局和无限循环播放等。

    2 年前
  • npm 包 hard-source-webpack-plugin-medea 使用教程

    在前端开发中,webpack 给我们带来了无限可能。然而,随着项目变得更加庞大以及复杂,webpack 的构建速度也会变得越来越慢,这会影响我们的开发体验。为了解决这个问题,Hard Source W...

    2 年前
  • npm 包 va-ui 使用教程

    前言 在前端开发过程中,为了提高开发效率,我们通常会使用一些优秀的库和工具来协助我们的开发工作。其中,npm 包的使用成为了前端开发中必不可少的一部分。本文将介绍 npm 包 va-ui 的使用教程,...

    2 年前
  • NPM 包 Jest-Ajv 使用教程

    在前端开发中,我们经常需要进行单元测试以确保代码的正确性。Jest-Ajv 是一个 NPM 包,它可以帮助我们进行 JSON 数据的 Schema 验证,并将其集成到 Jest 测试框架中。

    2 年前
  • npm 包 module-log 使用教程

    在前端开发中,打印日志是非常常见的操作。为了方便开发者,在 Node.js 中我们可以通过使用 npm 包来实现日志的输出。其中,module-log 是一款非常好用的日志输出工具,本篇文章就来为大家...

    2 年前
  • 前端开发:使用 botkit-middleware-botmetrics 的 npm 包

    介绍 botkit-middleware-botmetrics 是一个 npm 包,该包提供了与 Botmetrics 服务的连接。Botmetrics 是一个提供消息能力分析和通信渠道自动化的平台。

    2 年前
  • npm 包 mocha-github-reporter 使用教程

    在前端开发中,自动化测试是一个极其重要的环节,它有助于保证代码的质量和稳定性,也有助于降低后期维护成本。而 Mocha 则是一个优秀的 JavaScript 测试框架,它提供了很多功能和插件,让我们可...

    2 年前
  • npm 包 fn-cache-wrapper 使用教程

    简介 fn-cache-wrapper 是一个可以缓存函数返回值的 npm 包。它可以帮助我们避免重复计算,提高代码的效率。 安装 在终端中输入以下命令进行安装: --- ------- ------...

    2 年前
  • npm 包 telling-stories-site 使用教程

    概述 telling-stories-site 是一个基于 React 的前端组件库,提供了许多可定制的组件和样式,帮助开发者创建各种类型的网站,包括故事网站、个人博客等。

    2 年前
  • npm 包 drive-through 使用教程

    前言:本文主要介绍如何使用 npm 包 drive-through,让前端开发者能够更高效地进行网络请求处理和数据转换。 什么是 drive-through? drive-through 是一个简单而...

    2 年前
  • npm 包 hx-tokenizer 使用教程

    在前端开发中,我们通常使用各种工具和库来进行项目开发和管理。其中,npm 是前端开发中最流行的包管理器。今天我们来介绍一款可以将 HTML 文本转换为语法树的 npm 包:hx-tokenizer。

    2 年前
  • npm 包 query-once 使用教程

    在前端开发中,我们经常需要使用某个元素的属性或者文本内容,为了获取这些信息,我们通常会使用一些 DOM API,比如 document.getElementById、querySelector 等。

    2 年前
  • npm 包 aframe-rain 使用教程

    前言 aframe-rain 是 aframe 的插件之一。它用于在 aframe 中创建逼真的雨天效果。这篇文章是为了让初学者更好地使用这个 npm 包。 安装 首先,我们需要安装 aframe。

    2 年前

相关推荐

    暂无文章