"src/**/*.js", "src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "./auto-imports.d.ts"
时间: 2025-04-03 15:08:35 浏览: 38
### 使用 Glob 模式匹配多种源代码文件类型
为了实现对 `js`、`ts`、`tsx` 和 `vue` 文件类型的匹配,可以利用 Node.js 的第三方库 `fast-glob` 或者 Vite 自带的工具函数来完成这一需求。以下是具体方法:
#### 方法一:使用 fast-glob 库
可以通过安装并导入 `fast-glob` 来定义所需的路径模式。
```javascript
// 安装 fast-glob
npm install fast-glob --save-dev
const fg = require('fast-glob');
async function matchFiles() {
const files = await fg(['src/**/*.{js,ts,tsx,vue}', '!src/**/*.d.ts']);
console.log(files);
}
matchFiles();
```
上述代码通过指定通配符 `*.{js,ts,tsx,vue}` 实现了对目标文件扩展名的支持[^1],并通过排除规则 `!src/**/*.d.ts` 避免加载 `auto-imports.d.ts` 类型声明文件[^2]。
---
#### 方法二:Vite 提供的内置工具函数
如果不想额外增加依赖项,则可以直接借助 Vite 已有的功能模块处理此问题。
```typescript
import { glob } from 'glob';
import path from 'path';
function getFilePathPatterns(rootDir: string): Promise<string[]> {
return new Promise((resolve, reject) => {
glob(path.join(rootDir, '**/*.{js,ts,tsx,vue}'), (err, matches) => {
if (err) {
reject(err);
}
resolve(matches.filter(file => !file.includes('.d.ts')));
});
});
}
getFilePathPatterns('./src').then(console.log).catch(console.error);
```
这里同样采用了类似的逻辑,即先筛选符合条件的文件集合,再进一步过滤掉 `.d.ts` 文件[^3]。
---
#### 注意事项
- **性能优化**:当项目规模较大时,应考虑减少不必要的扫描范围以提升效率。
- **动态调整**:可以根据实际开发环境灵活修改所支持的语言种类及其对应的目录结构。
---
阅读全文
相关推荐



















