UNPKG

pre-fetch-plugin

Version:

A pre-fetch plugin for Vite and Webpack

21 lines (20 loc) 829 B
import { sources } from 'webpack'; import { injectScriptToHtml } from '../core/utils'; export class WebpackPreFetchPlugin { constructor(options) { this.options = options; } apply(compiler) { compiler.hooks.emit.tapAsync('PreFetchPlugin', async (compilation, callback) => { for (const filename in compilation.assets) { if (filename.endsWith('.html')) { // 将 source 转换为字符串 const source = compilation.assets[filename].source().toString(); const updatedSource = await injectScriptToHtml(source, this.options.options); compilation.assets[filename] = new sources.RawSource(updatedSource); } } callback(); }); } }