Il n'existe pas de méthode connue pour exclure de Spotlight un fichier ou un dossier sur la base d'un motif (ex. : son nom).
Il est toutefois possible d'exclure un dossier de Spotlight en y ajoutant un fichier vide. .metadata_never_index
.
Vous pouvez utiliser cette méthode pour ignorer tous les node_module
et bower_modules
les dossiers :
find /path/to/projects -type d -path '*node_modules/*' -prune -o -type d -name 'node_modules' -exec touch '{}/.metadata_never_index' \;
Edit :
Il semble que la méthode .metadata_never_index
est ignoré par Spotlight depuis Mojave.
Edit 2 :
Comme l'a souligné @JohnLee, l'attribut étendu com.apple.metadata:com_apple_backup_excludeItem
n'est pas lié / n'a pas d'impact sur Spotlight.
Cependant *.noindex
et les liens symboliques ne sont pas indexés par mds (le backend de Spotlight). Vous pouvez l'utiliser comme un pansement :
# Rename all node_modules to node_modules.noindex and create a symlink node_modules -> node_modules.noindex
find /path/to/projects -type d \( -path '*node_modules/*' -o -path '*node_module.noindex/*' \) -prune -o -type d -name 'node_modules' -exec mv '{}' '{}.noindex' \; -exec ls -s '{}.noindex' '{}' \;
Remarque : si vous utilisez npm-ci le node_modules
est "automatiquement supprimé avant que npm ci ne commence son installation".