我试图得到一个包含每个子目录中的每个文件的glob模式,但我不知道如何包含隐藏文件。
例如,所有这些都应该匹配:
.git
.github/workflow.yml
index.js
src/index.js
src/components/index.js
字符串
这适用于所有具有名称和扩展名的文件,但会忽略隐藏文件:
**/**
型
更具体的背景:我想使用archiver库对除node_modules
(可能还有其他一些)以外的所有文件进行归档。
archive.directory("???", {
ignore: ["node_modules/", ...some other files],
});
型
2条答案
按热度按时间k4aesqcs1#
最好的方法可能是使用两个单独的模式,其中一个匹配隐藏文件,另一个匹配非隐藏文件。一种方法是
.* *
。但是,这与目录本身.
和父目录..
匹配,这通常不是您想要的。避免这个问题的模式是
.??* *
。假设您的目录中有以下文件。字符串
正如您在下面的示例中看到的,这个glob模式匹配隐藏文件和非隐藏文件,但不匹配当前目录或其父目录。
型
goucqfw62#
我在使用Archiver库时遇到了同样的问题。我在文档中读到它正在使用minmatch库作为glob模式。库为特定问题提供选项。这是文档中的位置。要获取所有文件、目录(递归)和隐藏文件(如“.npmrc”),您需要使用“archive.glob”而不是“archive.directory”。
我的代码看起来像这样:
字符串
我已经传递了选项“点:true”,现在它也包括隐藏文件。
最后的代码看起来像这样:
型