有没有办法在Vite中导入文件夹结构

geo*_*sic 3 vue.js vuejs3 vite

我有一堆子文件夹以及文件夹.vue中的一些组件 src/pages。使用 webpack,我可以使用如下代码获取页面路径和名称的列表:

export default require
  .context("../pages", true, /^\.\/.*\.vue$/)
  .keys()
  .map(page => page.slice(2).replace(".vue", ""))
  .filter(page => page !== "Index")
  .map(page => ({
    file: page,
    title: createTitle(page),
    path: slugify(kebabCase(page))
  }));
Run Code Online (Sandbox Code Playgroud)

Vite似乎不支持这一点。我尝试过const pages = import.meta.glob('../pages/*.vue'),但这仅适用于文件,不适用于子文件夹内的文件。

知道如何使用 Vite 实现这一目标吗?

geo*_*sic 9

我找到了一个方法。它并不完美,但也不可怕:

const pages = import.meta.glob('../pages/*.vue')
const folders = import.meta.glob('../pages/*/*.vue')
const both = {...pages, ...folders}
export default both
Run Code Online (Sandbox Code Playgroud)

这是一个细化:

const pages = import.meta.glob('../pages/**/*.vue')
export default pages
Run Code Online (Sandbox Code Playgroud)