// ------------- 获取文件名作为全局组件名 ----------- // const getFileName = (str: string): string => { return str.replace(/(.*/)*([^.]+).*/gi, '$2'); }; // ------------- 注册全局组件 ----------- // export function registerComponent(app: any): void { // for (const key in componentObj) { // app.component(key, componentObj[key]); // } const requireComponent = require.context( // 其组件目录的相对路径 './', // 是否查询其子目录 true, // 匹配大写开头组件文件名的正则表达式 /[A-Z]w+.(vue|ts)$/ // 大写开头, "./baseButton/Bbutton.vue" ); requireComponent.keys().forEach((fileName) => { // 获取组件配置 const componentConfig = requireComponent(fileName); // 获取组件的 PascalCase 命名, 如Bbutton const componentName = getFileName(fileName); // 全局注册组件 app.component( componentName, // 如果这个组件选项是通过 `export default` 导出的, // 那么就会优先使用 `.default`, // 否则回退到使用模块的根。 componentConfig.default || componentConfig ); }); }