# @darcas/rollup-sub-resource-integrity 中文文档

规范地址：https://npmcn.com/package/%40darcas/rollup-sub-resource-integrity/

版本：2\.0\.3
npm 元数据更新时间：2026-08-25T13:46:53.037Z
中文译文更新时间：2026-11-11T11:40:49.503Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40darcas/rollup-sub-resource-integrity
原文对照：https://npmcn.com/package/%40darcas/rollup-sub-resource-integrity/?lang=original
项目主页：https://sri.os.darcas.app/
源码仓库：https://github.com/DarCas/rollup-sub-resource-integrity

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：14.2 kB，7 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：0 个
- peer 依赖：rollup ^2\.0\.0 \|\| ^3\.0\.0 \|\| ^4\.0\.0
- 首次发布：2024-12-27T17:29:04.459Z
- 最新版本发布：2026-08-25T13:46:52.667Z
- 近 30 天下载量：2691（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：6（近 12 个月 4 个）

## 中文简介

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

## 安装

```sh
npm install @darcas/rollup-sub-resource-integrity
```

也可以使用：`pnpm add @darcas/rollup-sub-resource-integrity`、`yarn add @darcas/rollup-sub-resource-integrity`、`bun add @darcas/rollup-sub-resource-integrity`

## README

# 子资源集成

![NPM Last Update](https://img.shields.io/npm/last-update/%40darcas%2Frollup-sub-resource-integrity?style=for-the-badge) ![NPM Version](https://img.shields.io/npm/v/%40darcas%2Frollup-sub-resource-integrity?style=for-the-badge) ![NPM Downloads](https://img.shields.io/npm/dy/%40darcas%2Frollup-sub-resource-integrity?style=for-the-badge)

![NPM License](https://img.shields.io/npm/l/%40darcas%2Frollup-sub-resource-integrity?style=for-the-badge)

[![Buy me a coffee](https://img.shields.io/badge/buy_me_a_coffee-%E2%9D%A4%EF%B8%8F-FEEBE7?style=for-the-badge&labelColor=FF0000)](https://www.paypal.com/donate/?hosted_button_id=YZQDE3TEYDBWA)

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

## 特征

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

## 安装

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

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

或者,如果你用纱线:

```bash
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` 仅添加:

```ts
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`

### 示例

使用自定义算法 :

```javascript
SubResourceIntegrity('sha512');
```

## 捐款

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

## 许可证

这个项目根据麻省理工学院的许可证获得许可。 见 [自由主义](https://npmcn.com/package/%40darcas/rollup-sub-resource-integrity/LICENSE.md) 详细文件.

* * *

由 Q 制作 [达里奥·卡斯特拉诺(达尔卡斯)](https://casertano.name/)。 。 。 .

## 常见问题

### @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 和提交记录判断。

