{"id":20644,"library":"unplugin-inject-preload","title":"unplugin-inject-preload","description":"Universal plugin to inject <link rel='preload'> tags into HTML output for Vite 4/5, Webpack 5 (with HtmlWebpackPlugin), and Rspack 1.0 (with HtmlWebpackPlugin or HtmlRspackPlugin). Current stable version is 3.0.0, released with Rspack 1.0 support and dropped support for Rspack 0.x. Replaces separate packages vite-plugin-inject-preload and html-webpack-inject-preload. Ships TypeScript types. Release cadence is irregular, with minor releases featuring breaking changes. Key differentiator: single unified API across multiple bundlers.","status":"active","version":"3.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/applelo/unplugin-inject-preload","tags":["javascript","unplugin","vite","webpack","rspack","html-webpack-plugin","html","link","preload","typescript"],"install":[{"cmd":"npm install unplugin-inject-preload","lang":"bash","label":"npm"},{"cmd":"yarn add unplugin-inject-preload","lang":"bash","label":"yarn"},{"cmd":"pnpm add unplugin-inject-preload","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required for Webpack and Rspack (when using HtmlWebpackPlugin) builds to inject preload links.","package":"html-webpack-plugin","optional":true}],"imports":[{"note":"Import from subpath /vite for Vite, /webpack for Webpack, /rspack for Rspack. The plugin is ESM-only; CommonJS require may fail depending on bundler.","wrong":"const UnpluginInjectPreload = require('unplugin-inject-preload')","symbol":"UnpluginInjectPreload","correct":"import UnpluginInjectPreload from 'unplugin-inject-preload/vite'"},{"note":"For Webpack: use subpath /webpack. Requires html-webpack-plugin ≥5.0.0.","wrong":"const UnpluginInjectPreload = require('unplugin-inject-preload/webpack')","symbol":"UnpluginInjectPreload","correct":"import UnpluginInjectPreload from 'unplugin-inject-preload/webpack'"},{"note":"For Rspack: use subpath /rspack. Supports both HtmlWebpackPlugin and HtmlRspackPlugin.","wrong":"const UnpluginInjectPreload = require('unplugin-inject-preload/rspack')","symbol":"UnpluginInjectPreload","correct":"import UnpluginInjectPreload from 'unplugin-inject-preload/rspack'"},{"note":"Direct import exists but returns a generic factory; prefer specific subpath for clarity.","wrong":null,"symbol":"UnpluginInjectPreload","correct":"import UnpluginInjectPreload from 'unplugin-inject-preload'"}],"quickstart":{"code":"// For Vite: vite.config.ts\nimport UnpluginInjectPreload from 'unplugin-inject-preload/vite';\n\nexport default defineConfig({\n  plugins: [\n    UnpluginInjectPreload({\n      files: [\n        {\n          match: /\\.(woff2|woff)$/,\n        },\n      ],\n    }),\n  ],\n});","lang":"typescript","description":"Configure Vite to inject preload links for all .woff2 and .woff font files built by the bundler."},"warnings":[{"fix":"Upgrade Rspack to 1.0.x or later. For Rspack 0.x, stick with v2.x.","message":"Drop support for Rspack 0.x versions. v3.0.0 only supports Rspack 1.0.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Upgrade to Vite 4 or 5.","message":"Drop support for Vite 3. v2.0.0 requires Vite 4 or 5.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Update your `outputMatch` regex to handle base64 hashes (e.g., allow longer alphanumeric strings).","message":"Rollup 4 (shipped with Vite 5) uses base64 hashes in file names instead of base16 hashes. This may break `outputMatch` patterns expecting base16.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Test preload injection with `vite build` only. Dev server will not inject preload links.","message":"The Vite plugin only works on build (not dev server). Assets are not available during development.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Ensure you are using the correct import path: 'unplugin-inject-preload/vite', '/webpack', or '/rspack'. Also verify the package is installed.","cause":"Missing subpath export or using wrong bundler-specific import.","error":"Cannot find module 'unplugin-inject-preload/vite'"},{"fix":"Use default import: import UnpluginInjectPreload from 'unplugin-inject-preload/vite'","cause":"Importing from a wrong path or using a default import when only named export exists.","error":"TypeError: UnpluginInjectPreload is not a function"},{"fix":"Install html-webpack-plugin@>=5.0.0 as a devDependency.","cause":"Missing html-webpack-plugin for Webpack/Rspack builds.","error":"Error: html-webpack-plugin is required as a peer dependency"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}