// 同步加载 export function getModules(files: any) { // 当files为方法时为webapock,为对象时为vite const isWebpack = typeof files === 'function' // 路径包含compoennts的是内置组件不向外暴露 const modules = (isWebpack ? files.keys() : Object.keys(files)) .filter((item: string) => !item.includes('components')) .reduce((modules: any, modulePath: string) => { // set './app.vue' => 'app' const moduleName = modulePath.replace(/^\.\S*\/(.*)\.\w+$/, '$1') const value = isWebpack ? files(modulePath) : files[modulePath] modules[moduleName] = value.default return modules }, {}) return modules } // 异步加载 export function getAsyncModules(files: any, asyncImport: any) { // 当files为方法时为webapock,为对象时为vite const isWebpack = typeof files === 'function' const modules = (isWebpack ? files.keys() : Object.keys(files)) .filter((item: string) => !item.includes('components')) .reduce((modules: any, modulePath: string) => { // set './app.vue' => 'app' const moduleName = modulePath.replace(/^\.\S*\/(.*)\.\w+$/, '$1') modules[moduleName] = isWebpack ? asyncImport(modulePath) : files[moduleName] return modules }, {}) return modules }