npm 包 srisum 使用教程

阅读时长 6 分钟读完

在前端开发中,我们经常需要对静态资源进行优化以提升网页性能。其中,srisum 是一款常用的工具,可以通过计算文件哈希值并生成相应的 SRI(Subresource Integrity)校验值,从而有效防止 CDN 资源被篡改或替换,保障网站的安全性。

本篇文章将为大家介绍如何使用 npm 包 srisum,以及它的一些常用功能和使用技巧。

安装 srisum

使用 srisum 首先需要在本地安装它。在终端中执行以下命令即可:

生成 SRI

使用 srisum 自动生成 SRI 非常简单。我们可以使用 srisum 的 getFileHash 方法,提供文件路径后,即可得到该文件的 SHA-384 哈希值和对应的 SRI 验证字符串。

下面是一个使用示例:

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

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

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

在以上代码中,我们首先引入了 srisum 和 fs 模块,然后读取了指定的文件,得到了该文件内容的哈希值和 SRI 校验字符串。

其中 fileHash.hexDigest() 方法返回的是哈希值的十六进制表示,而 fileHash.integrity() 则返回的是 SRI 校验字符串。

如果需要生成多个文件的 SRI 值,我们可以使用以下代码:

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

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

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

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

在以上代码中,我们使用 forEach 循环遍历了多个文件,并将它们的 SRI 值保存在一个数组中。

针对 CDN 资源生成 SRI

除了针对本地文件生成 SRI,我们也可以针对 CDN 资源生成 SRI。下面是一个使用示例:

以上代码中,我们使用 getFromUrl 方法获取 CDN 资源的哈希值和 SRI 验证字符串。需要注意的是,使用该方法需要保证 CDN 资源支持跨域访问。

在 Grunt 和 Gulp 中使用 srisum

在 Grunt 和 Gulp 中使用 srisum 也非常简单。下面是一个 Gruntfile.js 的示例:

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

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

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

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

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

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

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

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

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

在以上代码中,我们定义了一个名为 sri 的 Grunt 任务,用于自动生成 SRI。在任务执行时,我们将会按照指定路径下的文件,逐个计算文件的哈希值,并生成对应的 SRI 校验字符串。最后,我们将对应的 SRI 值附加在文件名末尾,方便后续资源管理。

如果你需要在 Gulp 中使用 srisum,可以使用 gulp-sri 插件。详细使用方法可以参考官方文档。

总结

通过本篇文章的学习,相信大家已经掌握了如何使用 npm 包 srisum,在前端开发项目中生成文件的 SRI 校验字符串。使用 srisum 可以提高静态资源的安全性和效率,避免文件被篡改或替换,从而提升网页的性能和用户体验。如果您有更多有趣的用例和实践,请在评论区留言并分享给我们。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/57637

纠错
反馈