Cosa sono i modelli glob?

I modelli glob sono modelli di corrispondenza con caratteri jolly utilizzati per specificare insiemi di nomi di file o percorsi. Sono nati nelle shell Unix ma ora sono utilizzati in linguaggi di programmazione e strumenti. I caratteri jolly comuni includono * (corrisponde a qualsiasi carattere), ** (corrisponde a directory in modo ricorsivo), ? (corrisponde a un singolo carattere) e [abc] (corrisponde a qualsiasi carattere tra parentesi). Questi modelli sono essenziali per operazioni su file, strumenti di build e sistemi di controllo versione come Git.

Come funzionano i modelli glob?

I modelli glob utilizzano caratteri jolly speciali per corrispondere ai percorsi dei file. Ecco i modelli più comuni:

  • * - Corrisponde a qualsiasi numero di caratteri all'interno di un singolo livello di directory
    • Esempio: *.js corrisponde a file.js, test.js ma non a folder/file.js
  • ****** - Corrisponde a qualsiasi numero di directory (corrispondenza ricorsiva)
    • Esempio: **/*.js corrisponde a file.js, src/file.js, src/utils/file.js
  • ? - Corrisponde esattamente a un carattere
    • Esempio: file?.js corrisponde a file1.js, fileA.js ma non a file10.js
  • [abc] - Corrisponde a qualsiasi singolo carattere dall'insieme
    • Esempio: file[123].js corrisponde a file1.js, file2.js, file3.js
  • [a-z] - Corrisponde a qualsiasi carattere nell'intervallo
    • Esempio: [A-Z]*.js corrisponde ai file che iniziano con lettere maiuscole
  • {js,ts} - Corrisponde a uno qualsiasi dei modelli separati da virgola (espansione parentesi graffe)
    • Esempio: *.{js,ts} corrisponde a file.js e file.ts
  • !pattern - Nega il modello (esclude i file corrispondenti)
    • Esempio: !*.test.js esclude tutti i file di test

Esempi pratici:

  • src/**/*.{js,ts} - Tutti i file JavaScript e TypeScript nella directory src e sottodirectory
  • lib/**/test/*.js - Tutti i file JavaScript nelle cartelle test all'interno di lib
  • **/*.min.js - Tutti i file JavaScript minificati ovunque nel progetto
  • !node_modules/** - Escludere tutto nella directory node_modules

Descrizione dello strumento

Uno strumento specializzato per testare e validare modelli glob con percorsi di file in tempo reale. Lo strumento utilizza la libreria picomatch per fornire una corrispondenza accurata dei modelli, consentendo agli sviluppatori di testare rapidamente i loro modelli glob prima di implementarli in file di configurazione, script o applicazioni. L'interfaccia fornisce feedback immediato su quali percorsi corrispondono al tuo modello, aiutandoti a perfezionare le tue espressioni glob.

Funzionalità

  • Corrispondenza modelli in tempo reale: Vedi istantaneamente quali percorsi corrispondono al tuo modello glob mentre digiti
  • Test percorsi multipli: Testa modelli con più percorsi di file contemporaneamente
  • Opzioni modello: Configura la sensibilità alle maiuscole e il comportamento di corrispondenza dei file nascosti
  • Feedback visivo: Indicazione chiara di percorsi corrispondenti e non corrispondenti con badge colorati
  • Risultati tabulari: Visualizzazione organizzata dei risultati di test in una tabella pulita
  • Gestione errori: Feedback immediato su modelli non validi con messaggi di errore
  • Statistiche corrispondenze: Riepilogo che mostra il numero di corrispondenze sul totale dei percorsi testati

Casi d'uso

  • Configurazione build: Testa modelli glob per strumenti di build come Webpack, Vite o Rollup prima di aggiungerli alla config
  • Modelli Git ignore: Valida modelli .gitignore per assicurarti che corrispondano ai file previsti
  • Script elaborazione file: Verifica modelli per la selezione di file in script Node.js o strumenti di automazione
  • Selezione file test: Configura test runner (Jest, Mocha) per selezionare i file di test corretti
  • ESLint e Prettier: Testa modelli di file per la configurazione di linter e formatter
  • Documentazione: Verifica modelli per generatori di documentazione e processori di file
  • Pipeline CI/CD: Testa modelli di corrispondenza percorsi per workflow di integrazione continua
  • Apprendimento sintassi glob: Sperimenta con modelli glob per comprendere il loro comportamento