u
This commit is contained in:
1 parent
208f6e3124
commit
8f4c696bdd
23 files changed
+1060
-330
No files matched your search
@@ -1,7 +1,43 @@
|
||||
import type { ComponentResolver } from 'unplugin-vue-components'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||
import Components from 'unplugin-vue-components/vite'
|
||||
import { defineConfig } from 'vite'
|
||||
|
||||
// https://vite.dev/config/
|
||||
/**
|
||||
* AoDesign Resolver
|
||||
* 自动支持前缀组件,如 <AButton>
|
||||
*/
|
||||
export function AoDesignResolver(prefix = 'A'): ComponentResolver {
|
||||
return {
|
||||
type: 'component',
|
||||
resolve: (name: string) => {
|
||||
// 处理 PascalCase (AButton)
|
||||
const pascalName = name
|
||||
.split('-')
|
||||
.map(part => part.charAt(0).toUpperCase() + part.slice(1))
|
||||
.join('')
|
||||
|
||||
// 如果是 PascalCase,且以指定前缀开头,返回组件路径
|
||||
if (pascalName.startsWith(prefix)) {
|
||||
const importName = pascalName.slice(prefix.length)
|
||||
const path = '@ao/ao-design'
|
||||
return { name: pascalName, importName, path }
|
||||
}
|
||||
|
||||
return null
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
plugins: [
|
||||
vue(),
|
||||
vueJsx(),
|
||||
Components({
|
||||
resolvers: [AoDesignResolver('A')], // 前缀可自定义
|
||||
dts: 'src/components.d.ts', // 自动生成 TS 类型声明
|
||||
directoryAsNamespace: true,
|
||||
}),
|
||||
],
|
||||
})
|
||||
Reference in new issue
Block a user