vite-plugin-trae-image-preloader
Version:
Vite plugin for preloading images in development mode
134 lines (99 loc) • 3.32 kB
Markdown
# Vite Plugin Image Preloader
智能图片预加载插件,支持 React 和 Vue 框架,具备301重定向处理和后台轮询功能。
## 安装
```bash
pnpm add vite-plugin-trae-image-preloader
```
## 使用方法
### ESM 导入方式(推荐)
```typescript
// vite.config.ts
import { defineConfig } from 'vite'
import imagePreloader from 'vite-plugin-trae-image-preloader'
export default defineConfig({
plugins: [
imagePreloader({
verbose: true,
framework: 'react', // 或 'vue' 或 'auto'
devOnly: true
})
]
})
```
### CommonJS 导入方式
```javascript
// vite.config.js
const { defineConfig } = require('vite')
const imagePreloader = require('vite-plugin-trae-image-preloader').default
module.exports = defineConfig({
plugins: [
imagePreloader({
verbose: true,
framework: 'auto'
})
]
})
```
### 混合导入方式
```javascript
// 如果遇到导入问题,可以尝试这些方式:
// 方式1:默认导入
import imagePreloader from 'vite-plugin-trae-image-preloader'
// 方式2:require 默认导出
const imagePreloader = require('vite-plugin-trae-image-preloader').default
// 方式3:动态导入
const { default: imagePreloader } = await import('vite-plugin-trae-image-preloader')
```
## 配置选项
```typescript
interface ImagePreloaderOptions {
extensions?: string[] // 支持的图片扩展名,默认: ['png', 'jpg', 'jpeg', 'gif', 'svg', 'webp', 'avif']
verbose?: boolean // 是否显示详细日志,默认: true
framework?: 'auto' | 'react' | 'vue' | 'vanilla' // 框架类型,默认: 'auto'
devOnly?: boolean // 仅在开发模式下工作,默认: true
delay?: number // 预加载延迟(毫秒),默认: 1000
}
```
## 功能特性
- ✅ **智能代码扫描**:分析代码中的图片引用,无需文件系统扫描
- ✅ **HTTP API 支持**:支持动态API图片URL
- ✅ **301重定向处理**:检测默认图片,后台轮询真实图片
- ✅ **分批加载**:每批5张图片,间隔3秒,避免服务器压力
- ✅ **自动图片更新**:获取真实图片后自动替换页面中的默认图片
- ✅ **框架自动检测**:支持 React、Vue 和原生项目
- ✅ **调试接口**:`window.__imagePreloader` 全局调试对象
## 排查问题
### 1. 检查插件是否正确加载
在浏览器控制台查看是否有以下日志:
```
🖼️ Image Preloader Plugin enabled for react
🖼️ Found X image(s) in YourComponent.tsx
```
### 2. 检查导入方式
如果插件没有输出,可能是导入方式问题:
```javascript
// 尝试不同的导入方式
import imagePreloader from 'vite-plugin-trae-image-preloader' // ESM
const imagePreloader = require('vite-plugin-trae-image-preloader') // CJS (可能需要 .default)
```
### 3. 调试模式
启用详细日志:
```typescript
imagePreloader({
verbose: true // 查看详细的加载过程
})
```
### 4. 全局调试接口
在浏览器控制台使用:
```javascript
// 查看发现的图片
window.__imagePreloader.imageUrls
// 手动触发预加载
window.__imagePreloader.preloadAllImages()
// 查看已加载的图片
window.__imagePreloader.getPreloadedImages()
```
## 示例项目
参见 `packages/demo` 目录中的完整示例。
## License
MIT