Penguji glob dan .gitignore
Uji pola glob dan aturan .gitignore pada daftar path dan lihat path mana yang cocok serta aturan mana yang berlaku.
Contoh kode
Salin contoh ini ke proyek Anda sendiri. Masing-masing hanya memakai pustaka standar bahasanya, jadi tidak ada yang perlu diinstal.
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)
}Fungsinya
Menguji pola glob dan aturan .gitignore pada daftar path. Setiap path ditandai cocok atau tidak, dengan pola penyebabnya di sampingnya, sehingga Anda tahu mengapa src/lib/util.test.ts masuk atau tidak.
Cara memakainya
- Tempel satu path per baris, atau jatuhkan file teks, ke Path.
- Tulis satu pola per baris di Pola. Baris yang diawali
#adalah komentar. - Pilih Glob, Bash, atau Gitignore, lalu tampilkan semua path, hanya yang cocok, atau hanya yang tidak cocok.
- Salin hasilnya.
Contoh
Dengan pola src/**/*.ts dan !**/*.test.ts, path src/lib/util.ts cocok dan src/lib/util.test.ts tidak, karena pengecualian menang. Dengan aturan .gitignore *.log dan !keep.log, app.log diabaikan dan keep.log tidak.
Perlu diketahui
*tetap di satu direktori,**melintasi direktori, dan?,[ab], serta{a,b}berfungsi seperti di picomatch.- File tersembunyi seperti
.envhanya cocok jika Anda mengaktifkan Sertakan file tersembunyi atau pola menyebut titiknya. - Pada Glob dan Bash, pola berawalan
!mengecualikan yang ditemukan pola lain. Pada Gitignore aturan terakhir yang cocok menang, seperti di Git. - Bash membaca
**sebagai*biasa, seperti shell tanpaglobstar. - Path dicocokkan sebagai teks. Tidak ada yang dibaca dari disk.
Apa arti ketiga sintaks itu?
Glob adalah sintaks picomatch yang dipakai sebagian besar alat build: * tetap di satu direktori, ** melintasi direktori, dan kurung kurawal seperti {a,b}, kelas seperti [ab], serta ? juga berfungsi. Bash membaca ** sebagai * biasa, seperti shell tanpa globstar. Gitignore mengikuti aturan .gitignore: garis miring di akhir berarti direktori, garis miring di awal menambatkan ke root, dan aturan ! berikutnya memasukkan kembali apa yang diabaikan aturan sebelumnya.
Pertanyaan umum
Aturan mana yang ditampilkan di samping sebuah path?
Pola pertama yang cocok. Pada glob dan bash, path yang dikecualikan oleh pengecualian (pola berawalan !) menampilkan pengecualian itu. Pada gitignore, yang tampil adalah aturan yang mengabaikannya.
Mengapa * tidak cocok dengan file yang diawali titik?
Glob melewati file tersembunyi kecuali pola menyebut titiknya. Aktifkan Sertakan file tersembunyi agar * dan ? mencocokkannya, seperti bash dotglob. .gitignore tidak punya sakelar itu.
Apakah alat ini mengirim path saya ke mana pun?
Tidak. Semuanya terjadi di browser Anda. Apa yang Anda ketik tidak pernah dikirim ke server kami.