import.meta.glob("/src/views/**/*.vue");返回的结果格式是什么样的
时间: 2023-08-30 22:12:25 浏览: 126
vite vue3 import.meta.glob动态路由
`import.meta.glob("/src/views/**/*.vue")` 返回的结果是一个对象,键是匹配的文件路径,值是一个 `Promise` 对象,该对象解析为一个包含模块的对象。
例如,如果你有以下文件结构:
```
└── src/
└── views/
├── Home.vue
├── About.vue
└── sub/
├── SubPage.vue
└── SubSub/
└── SubSubPage.vue
```
使用 `import.meta.glob("/src/views/**/*.vue")` 将返回以下对象:
```javascript
{
'./src/views/About.vue': Promise { <pending> },
'./src/views/Home.vue': Promise { <pending> },
'./src/views/sub/SubPage.vue': Promise { <pending> },
'./src/views/sub/SubSub/SubSubPage.vue': Promise { <pending> }
}
```
你可以使用 `Object.keys()` 方法获取所有匹配的文件路径:
```javascript
const modules = await Promise.all(
Object.keys(import.meta.glob("/src/views/**/*.vue")).map(async (path) => {
const module = await import(path)
return {
path,
module
}
})
)
console.log(modules)
// Output:
// [
// {
// path: './src/views/About.vue',
// module: {...}
// },
// {
// path: './src/views/Home.vue',
// module: {...}
// },
// {
// path: './src/views/sub/SubPage.vue',
// module: {...}
// },
// {
// path: './src/views/sub/SubSub/SubSubPage.vue',
// module: {...}
// }
// ]
```
请注意,`import.meta.glob()` 是一个实验性功能,可能需要在一些浏览器中启用或使用 polyfill。
阅读全文