fast-glob
是一个用于文件路径模式匹配的 JavaScript 库,它比 Node.js 内置的 glob
模块更快。如果你想要在使用 fast-glob
时忽略具有特定扩展名的文件,可以通过在模式中使用 !
符号来实现排除。
以下是使用 fast-glob
忽略具有特定扩展名文件的基础概念和相关示例:
fast-glob
使用类似 Unix shell 的模式匹配语法来指定文件路径。!
符号,可以指定要排除的文件或目录。fast-glob
比 glob
更快,尤其是在处理大量文件时。*.js
匹配所有 .js
文件。!*.tmp
排除所有 .tmp
文件。假设你想列出当前目录下所有的 .js
文件,但忽略所有 .test.js
文件,可以使用以下代码:
const fg = require('fast-glob');
(async () => {
try {
const entries = await fg(['*.js', '!*.test.js'], { onlyFiles: true });
console.log(entries);
} catch (error) {
console.error(error);
}
})();
在这个例子中:
*.js
匹配所有 .js
文件。!*.test.js
排除所有以 .test.js
结尾的文件。原因:可能是模式写法不正确,或者排除规则的顺序不对。
解决方法:
!*.tmp
而不是 !*tmp
。原因:可能需要更具体的路径模式来指定目录。
解决方法:
**
来匹配任意深度的目录,例如 **/*.js
匹配所有目录下的 .js
文件。!**/*.test.js
排除所有目录下的 .test.js
文件。const fg = require('fast-glob');
(async () => {
try {
const entries = await fg(['src/**/*.js', '!src/**/*.test.js'], { onlyFiles: true });
console.log(entries);
} catch (error) {
console.error(error);
}
})();
在这个例子中:
src/**/*.js
匹配 src
目录及其子目录下的所有 .js
文件。!src/**/*.test.js
排除 src
目录及其子目录下的所有 .test.js
文件。通过这种方式,你可以灵活地使用 fast-glob
来处理文件路径匹配和排除规则。
云+社区沙龙online
云+社区沙龙online [技术应变力]
云+社区技术沙龙[第11期]
DB TALK 技术分享会
DB・洞见
云+社区技术沙龙[第17期]
Techo Day
云+社区技术沙龙[第14期]
云+社区技术沙龙[第27期]
领取专属 10元无门槛券
手把手带您无忧上云