vite-plugin-subresource-integrity

raw JSON →
0.0.12 verified Mon Apr 27 auth: no javascript

Vite plugin that adds subresource integrity (SRI) hashes to script and stylesheet imports in index.html at build time. Version 0.0.12 is the latest, with an unknown release cadence. It is a TypeScript rewrite of @small-tech/vite-plugin-sri, offering native type definitions and support for multiple frameworks (Vue, React, Svelte, Solid, Qwik, Lit, Preact, vanilla). Key differentiators: lightweight, no runtime overhead, and simple configuration. Alternatives include rollup-plugin-sri and @small-tech/vite-plugin-sri.

error Error: Cannot find module 'vite-plugin-subresource-integrity'
cause Plugin not installed or incorrect import path.
fix
Run npm i --save-dev vite-plugin-subresource-integrity and ensure import using default import.
error ReferenceError: require is not defined
cause Using require() in an ESM context.
fix
Replace require() with import statement.
error TypeError: subresourceIntegrity is not a function
cause Using named import instead of default import.
fix
Use import subresourceIntegrity from 'vite-plugin-subresource-integrity'.
gotcha Plugin only works at build time, not in dev mode.
fix No fix needed; SRI is only relevant for production builds.
gotcha Plugin modifies index.html after build. If using custom HTML templates, ensure the plugin runs after other HTML transformers.
fix Order plugins carefully: subresourceIntegrity() should be placed after HTML manipulation plugins.
deprecated This plugin is a fork; original @small-tech/vite-plugin-sri is unmaintained.
fix Continue using this plugin or switch to rollup-plugin-sri if needed.
gotcha Does not support dynamic imports or async chunks by default.
fix Manually add integrity attributes in HTML for dynamic chunks or use a full rollup SRI plugin.
npm install vite-plugin-subresource-integrity
yarn add vite-plugin-subresource-integrity
pnpm add vite-plugin-subresource-integrity

Basic Vite configuration integrating the subresource integrity plugin.

// vite.config.js
import { defineConfig } from 'vite';
import subresourceIntegrity from 'vite-plugin-subresource-integrity';

export default defineConfig({
  plugins: [subresourceIntegrity()]
});