@darcas/rollup-sub-resource-integrity

中文文档
2.0.3发布于 2026/08/25MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 2691

一个零依赖性滚动插件,将子资源完整性(SRI)属性添加到HTML文件中,以确保脚本和样式表的完整性,使用散列算法如SHA-256,SHA-384,和SHA-512.

中文使用文档
文档目录10 节
  1. 特征
  2. 安装
  3. 从 v1 移到 v2
  4. 使用量
  5. 如何运作
  6. 配置
  7. 支持的算法
  8. 示例
  9. 捐款
  10. 许可证

子资源集成

NPM Last Update NPM Version NPM Downloads

NPM License

Buy me a coffee

SubResourceIntegrity 是一个零依赖性滚动插件,用于添加子资源完整性(SRI) 属性到您的 HTML 文件。 SRI有助于确保外部资源的完整性(例如:, 脚本和样式表),通过允许浏览器验证所取取文件是在不完成的情况下发送的 意外的操纵.

特征

  • 0运行时间依赖关系(自v2.0.
  • 自动计算资源完整性散列 *.htm 财务报告和审定财务报表 *.html。 。 。 .
  • 支持多个散列算法( S)sha256, (中文(简体) ), sha384, (中文(简体) ), sha512) (中文(简体) ).
  • 将无缝地纳入"滚动"建设进程.

安装

要使用此插件, 请通过 npm 安装 :

npm i -D @darcas/rollup-sub-resource-integrity

或者,如果你用纱线:

yarn add @darcas/rollup-sub-resource-integrity --dev

说明: 由于 v2 , 插件没有运行时间依赖性 — 从 v1 升级不需要代码 变化.

从 v1 移到 v2

不需要更改代码:插件 API 及其用途保持不变.

车盖下有什么变化:

  • 零运行时间依赖关系. cheerio 已删除; 安装插件不再拉动 在任何包装.
  • 内膜加工. 钩子从哪里移出 writeBundle (从磁盘读出/写出)到 generateBundle,将资源直接从捆绑输出.
  • crossorigin="anonymous" 自动添加 给每个收到 integrity 属性,因为浏览器忽略了跨源资源上的SRI.
  • 节点.js 18 现在需要.

使用量

在你身边 vite.config.mts 仅添加:

import SubResourceIntegrity from '@darcas/rollup-sub-resource-integrity';
import {defineConfig} from 'vite';

export default defineConfig({
    //..
    plugins: [
        //..
        SubResourceIntegrity(),
        //..
    ],
    //..
});

如何运作

  1. 期间 generateBundle 阶段,插件扫描捆绑中释放的 HTML 资产.
  2. 它寻找资源标记( I)<script src> 财务报告和审定财务报表 <link rel="stylesheet|preload|modulepreload">(中文(简体) ) 其URI匹配同一捆绑中的文件.
  3. 每场比赛:
    • 内容取自内存捆绑( 无磁盘访问) 并使用指定的散列 算法.
    • 一个 integrity 属性添加到标签中.
    • A 类 crossorigin="anonymous" 缺少时添加属性, 因为浏览器忽略 integrity 打开 没有这种资源,就有各种来源的资源.
  4. 外部 URIs (http(s):协议关系, data:) 捆绑中缺少的资源是: 默默跳过.

0运行时间依赖性:HTML重写使用定向正则克,而不是DOM parser.

配置

插件接受一个可选参数来指定散列算法. 默认是 sha384。 。 。 .

支持的算法

  • sha256
  • sha384 (默认)
  • sha512

示例

使用自定义算法 :

SubResourceIntegrity('sha512');

捐款

若想为项目出力,可以随意将项目叉出并创建拉出请求. 请 保证您的更改经过充分测试并有适当的文件记录.

许可证

这个项目根据麻省理工学院的许可证获得许可。 见 自由主义 详细文件.


由 Q 制作 达里奥·卡斯特拉诺(达尔卡斯)。 。 。 .

版本与发布记录

@darcas/rollup-sub-resource-integrity 共发布 6 个版本,首次发布于 2024/12/28;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.3latest2026/08/252 个月前
2.0.22026/08/242 个月前
2.0.12026/08/242 个月前
2.0.02026/08/212 个月前
1.1.02024/12/281.9 年前
1.0.02024/12/281.9 年前

关于 @darcas/rollup-sub-resource-integrity 的常见问题

@darcas/rollup-sub-resource-integrity 是什么?

一个零依赖性滚动插件,将子资源完整性(SRI)属性添加到HTML文件中,以确保脚本和样式表的完整性,使用散列算法如SHA-256,SHA-384,和SHA-512.

如何安装 @darcas/rollup-sub-resource-integrity?

在项目目录运行 npm install @darcas/rollup-sub-resource-integrity,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:rollup(^2.0.0 || ^3.0.0 || ^4.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@darcas/rollup-sub-resource-integrity 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@darcas/rollup-sub-resource-integrity 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@darcas/rollup-sub-resource-integrity 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@darcas/rollup-sub-resource-integrity 可以商用吗?

@darcas/rollup-sub-resource-integrity 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@darcas/rollup-sub-resource-integrity 的下载量有多少?

根据 npm 官方下载统计,@darcas/rollup-sub-resource-integrity 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,691 次,日均约 90 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@darcas/rollup-sub-resource-integrity 还在维护吗?

最新版本 2.0.3 发布于 2026/08/25(2 个月前);至今共发布 6 个版本,其中过去 12 个月发布了 4 个;首次发布于 2024/12/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。