安装
包管理器
bash
npm install @meng-xi/vite-plugin -Dbash
yarn add @meng-xi/vite-plugin -Dbash
pnpm add @meng-xi/vite-plugin -D快速开始
使用内置插件
typescript
import { defineConfig } from 'vite'
import { copyFile, generateRouter, generateVersion, injectIco } from '@meng-xi/vite-plugin'
export default defineConfig({
plugins: [
// 复制文件
copyFile({
sourceDir: 'src/assets',
targetDir: 'dist/assets'
}),
// 生成路由配置(uni-app)
generateRouter({
pagesJsonPath: 'src/pages.json',
outputPath: 'src/router.config.ts'
}),
// 生成版本号
generateVersion({
format: 'datetime',
outputType: 'both'
}),
// 注入网站图标
injectIco({
base: '/assets'
})
]
})开发自定义插件
typescript
import { BasePlugin, createPluginFactory } from '@meng-xi/vite-plugin'
import type { Plugin } from 'vite'
interface MyPluginOptions {
message: string
enabled?: boolean
verbose?: boolean
errorStrategy?: 'throw' | 'log' | 'ignore'
}
class MyPlugin extends BasePlugin<MyPluginOptions> {
protected getDefaultOptions() {
return { message: 'Hello' }
}
protected validateOptions(): void {
this.validator.field('message').required().string().validate()
}
protected getPluginName(): string {
return 'my-plugin'
}
protected addPluginHooks(plugin: Plugin): void {
plugin.buildStart = () => {
this.logger.info(this.options.message)
}
}
}
export const myPlugin = createPluginFactory(MyPlugin)下一步
- copyFile 插件 - 文件复制
- generateRouter 插件 - 路由生成
- generateVersion 插件 - 版本管理
- injectIco 插件 - 图标注入
