Testador de glob e .gitignore
Teste padrões glob e regras .gitignore numa lista de caminhos e veja quais caminhos correspondem e que regra o fez.
Exemplos de código
Copie estes exemplos para o seu próprio projeto. Cada um usa apenas a biblioteca padrão da linguagem, por isso não há nada para instalar.
const pattern = '*.log'
const names = ['app.log', 'readme.md', 'error.log']
// * stays inside one path segment, ? is one character, everything else is literal.
const source = pattern.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '[^/]*').replace(/\?/g, '[^/]')
const matcher = new RegExp(`^${source}$`)
for (const name of names.filter((candidate) => matcher.test(candidate))) {
console.log(name)
}O que faz
Testa padrões glob e regras .gitignore numa lista de caminhos. Cada caminho é marcado como correspondente ou não, com o padrão responsável ao lado, para ver por que src/lib/util.test.ts entra ou fica de fora.
Como usar
- Cole um caminho por linha, ou solte um arquivo de texto, em Caminhos.
- Escreva um padrão por linha em Padrões. Linhas que começam com
#são comentários. - Escolha Glob, Bash ou Gitignore, e mostre todos os caminhos, só as correspondências ou só as que não correspondem.
- Copie o resultado.
Exemplos
Com os padrões src/**/*.ts e !**/*.test.ts, o caminho src/lib/util.ts corresponde e src/lib/util.test.ts não, porque a exclusão vence. Com as regras .gitignore *.log e !keep.log, app.log é ignorado e keep.log não.
Bom saber
*fica dentro de um diretório,**atravessa diretórios, e?,[ab]e{a,b}funcionam como no picomatch.- Arquivos ocultos como
.envsó correspondem se você ativar Incluir arquivos ocultos ou o padrão citar o ponto. - Em Glob e Bash, um padrão que começa com
!exclui o que os outros encontraram. Em Gitignore vence a última regra que corresponde, como no Git. - Bash lê
**como um simples*, como um shell semglobstar. - Os caminhos são comparados como texto. Nada é lido de um disco.
O que significam as três sintaxes?
Glob é a sintaxe picomatch da maioria das ferramentas de build: * fica dentro de um diretório, ** atravessa diretórios, e chaves como {a,b}, classes como [ab] e ? também funcionam. Bash lê ** como um simples *, como um shell sem globstar. Gitignore segue as regras do .gitignore: uma barra no fim indica um diretório, uma barra no início ancora na raiz, e uma regra ! posterior reinclui o que uma anterior ignorava.
Perguntas frequentes
Que regra aparece ao lado de um caminho?
O primeiro padrão que corresponde. Em glob e bash, um caminho removido por uma exclusão (um padrão que começa com !) mostra essa exclusão. Em gitignore, aparece a regra que o ignorou.
Por que * não corresponde a um arquivo que começa com ponto?
Os globs ignoram arquivos ocultos, a menos que o padrão cite o ponto. Ative Incluir arquivos ocultos para que * e ? os encontrem, como o bash dotglob. Um .gitignore não tem essa opção.
Esta ferramenta envia meus caminhos para algum lugar?
Não. Tudo acontece no seu navegador. O que você digita nunca é enviado aos nossos servidores.