vitepress-theme-base-teek
Version:
查看 [使用说明](https://vp.xiaoying.org.cn/pages/9d746f)
33 lines (26 loc) • 1 kB
text/typescript
import { App } from 'vue';
/**
* 自动注册宿主项目中 .vitepress/theme/components 目录下的组件
*
* @param app VitePress 应用实例
*/
export async function autoRegisterComponents(app: App ) {
try {
// 开发环境
// const modules = import.meta.glob(`../../apps/docs/.vitepress/theme/components/*.vue`);
const modules = import.meta.glob('/docs/.vitepress/theme/components/*.vue');
for (const [path, module] of Object.entries(modules)) {
const componentName = path.split('/').pop()?.replace('.vue', '');
if (componentName) {
try {
const componentModule = await (module as () => Promise<any>)();
app.component(componentName, componentModule.default || componentModule);
} catch (importError) {
console.debug(`组件 ${componentName} 导入失败:`, importError);
}
}
}
} catch (error) {
console.error('自动注册组件时出错:', error);
}
}