UNPKG

vite-plugin-browserext-hmr

Version:

基于 Vite 构建的浏览器扩展开发环境,提供热更新功能,让扩展开发更加高效。

97 lines (94 loc) 4.13 kB
import { EventEmitter } from 'node:events'; import { Plugin } from 'vite'; import { PlatformPath } from 'node:path'; declare global { var __buildInProgress: boolean; var __buildCompleted: boolean; var __server: any; var __inlineScriptContents: any; var __virtualInlineScript: string; var __eventEmitter: EventEmitter; var __runner: any; var __runnerNum: number; var __manifestVersion: number; var __finalManifests: any; var __config: any; var __jsCatch: Map<string, string>; var __builder: any; var __content_scripts_css: any; var __dependenciesMap: Map<string, any>; var __changeFuncArray: (() => Promise<any>)[]; var __changeFuncArrayStatus: boolean; var __changeStartFunc: () => void; var __buildFuncArray: (() => Promise<any>)[]; var __buildStateFunc: () => void; var __errorState: any; } type resolveType = PlatformPath["resolve"] extends (...args: any[]) => infer R ? R : string; interface BuildCrxNotifierPluginOptions { htmlPaths?: { name: string; path: resolveType; }[]; jsPaths?: { name: string; path: resolveType; }[]; manifestPath: resolveType; manifestData?: Record<string, any>; copyPaths?: { src: resolveType; dest: resolveType; }[]; wxtUserConfig?: { browser?: string; binaries?: { firefox?: string; chromium?: string; edge?: string; }; chromiumProfile?: string; chromiumPref?: string; chromiumArgs?: string[]; firefoxProfile?: string; firefoxPrefs?: string; firefoxArgs?: string[]; openConsole?: boolean; openDevtools?: boolean; startUrls?: string[]; keepProfileChanges?: boolean; outDir?: string; }; } /** * 启动本地开发环境工具浏览器插件热更新,主动重新加载插件实现更新 * 用于配置开发模式下的端口、文件监听路径及延迟行为 * * @param param0 * @param options.htmlPaths - 需要监听/处理的 HTML 文件路径数组(默认:空数组),用于插入接收热更新更新消息并重新加载插件 * @param options.jsPaths - 需要监听/处理的 JS 文件路径数组(默认:空数组),用于插入接收热更新更新消息并重新加载插件 * @param options.manifestPath - 需要监听/处理的 manifest.json 文件路径(默认:空字符串),用于插入接收热更新更新消息并重新加载插件 * @param options.copyPaths - 需要拷贝的文件路径 * @param options.manifestData - 需要写入到manifest.json的数据(默认:空对象) * @param options.wxtUserConfig - 浏览器配置 * @param options.wxtUserConfig.browser - 浏览器类型 * @param options.wxtUserConfig.binaries - 浏览器二进制文件 * @param options.wxtUserConfig.binaries.chrome - Chrome浏览器二进制文件 * @param options.wxtUserConfig.binaries.firefox - Firefox浏览器二进制文件 * @param options.wxtUserConfig.binaries.edge - Edge浏览器二进制文件 * @param options.wxtUserConfig.chromiumProfile - 浏览器配置文件 * @param options.wxtUserConfig.chromiumPref - 浏览器偏好设置 * @param options.wxtUserConfig.chromiumArgs - 浏览器参数 * @param options.wxtUserConfig.firefoxProfile - 火狐浏览器配置文件 * @param options.wxtUserConfig.firefoxPrefs - 火狐浏览器偏好设置 * @param options.wxtUserConfig.firefoxArgs - 火狐浏览器参数 * @param options.wxtUserConfig.openConsole - 是否打开浏览器控制台 * @param options.wxtUserConfig.openDevtools - 是否打开浏览器开发者工具 * @param options.wxtUserConfig.startUrls - 启动URL * @param options.wxtUserConfig.keepProfileChanges - 是否保持浏览器配置 * @param options.wxtUserConfig.outDir - 输出目录 * @returns */ declare function vitePluginBrowserextHmr({ htmlPaths, jsPaths, manifestPath, manifestData, // 需要写入到manifest.json的数据 copyPaths, wxtUserConfig, }: BuildCrxNotifierPluginOptions): Plugin; export { vitePluginBrowserextHmr };