vite批量文件,由于无法使用require.context,所以使用的import.meta.globEager或者import.meta.glob
// 批量引入
const modulesFiles = import.meta.globEager("./modules/*.ts")
const modules = []
for (const key in modulesFiles) {
modules.push(...(modulesFiles[key].default))
}
const modulesFiles = import.meta.glob("./modules/*.ts")
const modules: any = []
for (const key in modulesFiles) {
await modulesFiles[key]().then((res: any) => {
modules.push(...res.default)
})
}
同时通过importMeta.d.ts文件可以看出,glob返回的是promise
glob(pattern: string): Record<
string,
() => Promise<{
[key: string]: any
}>
>
globEager(pattern: string): Record<
string,
{
[key: string]: any
}
>
自定义指令, dom和绑定的数据
<div v-clickout:arg="expression" class="car-brand">
<div>
directives: {
clickout: {
bind: (el: any, binding: any) => {
let { arg, expression, name, rawName, value} = binding
}
}
}