利用 vite 的 import.meta.glob 获取 public 目录文件
在使用 vite 的 vue 3 项目中,获取 public 目录下特定文件夹的所有文件名非常重要。本文将介绍如何使用 vite 内置的 import.meta.glob() 方法高效地完成此任务。
使用 import.meta.glob
import.meta.glob() 方法是一个 vite 特性,允许你动态导入 glob 模式匹配的文件。具体而言,你可以使用以下步骤获取 public 目录下特定文件夹的所有文件名:
- 确保你的目录结构如下:
├── favicon.ico ├── folder1 │ └── file1.txt └── folder2 └── file2.txt
- 在 vue 文件中,使用 import.meta.glob() 方法获取文件:
const files = import.meta.glob('/public/**/*') console.log(files, Object.keys(files))
- 打印输出:
Map({ '/public/favicon.ico': Promise { <state>: "fulfilled", <value>: undefined }, '/public/folder1/file1.txt': Promise { <state>: "fulfilled", <value>: undefined }, '/public/folder2/file2.txt': Promise { <state>: "fulfilled", <value>: undefined } }) [ 'public/favicon.ico', 'public/folder1/file1.txt', 'public/folder2/file2.txt' ]
通过 object.keys(files),你可以获取所有文件名的数组,如上所示。
这种方法特别有用,因为它使你能够动态获取 public 目录中的文件,即使你不知道确切的文件名。它可以用在需要灵活文件加载的场景中,例如构建动态菜单或渲染动态内容。