Nascondi i file .js.map nel codice di Visual Studio


320

Sto lavorando a un progetto dattiloscritto nel codice di Visual Studio e vorrei nascondere i file .js.map(e forse anche .js) i file che compaiono in Esplora file.

È possibile visualizzare solo i .tsfile in Esplora file?

Risposte:


641

Nelle tue impostazioni (utente o spazio di lavoro) c'è un'impostazione che puoi modificare per nascondere tutto ciò che desideri:

{
    "files.exclude": {
        "**/.git": true,
        "**/.DS_Store": true
    }
}

Quindi puoi aggiungere quanto segue per nascondere .jse .js.mapfile

"**/*.js": true,
"**/*.js.map": true

Come spiega questa altra risposta , molte persone probabilmente vogliono nascondere i .jsfile solo quando c'è un .tsfile corrispondente .

Quindi invece di fare:

"**/*.js": true

potresti voler fare:

"**/*.js": {"when": "$(basename).ts"}

10
Soluzione perfetta Per aggiungere, sospetto che molti utenti interessati a questo saranno anche interessati a nascondere la directory node_modules. Questo può essere fatto in questo modo:"**/node_modules/": true
Josh1billion

esiste un collegamento per disattivare / attivare l'opzione di configurazione files.exclude? qualche volta voglio controllare qualcosa di nascosto
aaalsubaie

103
"**/*.js": {"when": "$(basename).ts"},"**/*.map": {"when": "$(basename).map"}
Iuristona,

1
@aaalsubaie Per attivare / disattivare il filtro di esclusione dei file, è disponibile un'estensione in MarketPlace su marketplace.visualstudio.com/items?itemName=nwallace.peep
AJ Qarshi

2
È "**/*.map": {"when": "$(basename).map"}lo stesso di "**/*.map": true?
gdbj,

190

Ho trovato questo, se hai file JS standard, anche questi saranno nascosti, il che potrebbe non essere sempre quello che vuoi. Forse è meglio perché nasconde solo i file JS che corrispondono ai file TS ...

{
    "files.exclude": {
        "**/.git": true,
        "**/.DS_Store": true,
        "**/*.js.map": true,
        "**/*.js": {"when": "$(basename).ts"}
    }
}

5
Puoi pubblicare un link dove è documentato? Vorrei usare forme più complesse di "quando", ma non riesco a trovare dove è documentato.
Masimplo,

1
Nascondere i file JS derivati ​​è documentato qui: code.visualstudio.com/docs/languages/…
Stuart Hallows

4
Come si fa la stessa corrispondenza "quando" del modello per i file .js.map o ".min.css" dopo aver compilato e minimizzato scss? Non vengono corrispondenti a $ (basename)
nickspoon

Questo è intelligente, ma non funziona con qualcosa come angolare 2. Tutto è chiamato file.component.ts o file.module.ts
BentOnCoding

che dire quando i file ts si trovano in una cartella diversa?
Th3B0Y

98

Non so davvero come sia implementato, ma per nascondere i .jsfile funziona:

"**/*.js": {"when": "$(basename).ts"}

Per nascondere i .js.mapfile funziona:

"**/*.js.map": {"when": "$(basename)"}

6
Questa soluzione gestisce anche .js.map, poiché Visual Studio Code sembra interpretare $(basename)tutto prima del finale .. Potrebbe essere semplificato "**/*.map: {"when": "$(basename)"}, ma ciò escluderebbe tutti i .map file che hanno un non .mapfile corrispondente .
Njål Nordmark,

44

Quando si lavora con TypeScript, spesso non si desidera visualizzare i file JavaScript generati in Explorer o nei risultati di ricerca. VS Code offre funzionalità di filtro con files.excludeun'impostazione ( File> Preferenze> Impostazioni area di lavoro ) e puoi facilmente creare un'espressione per nascondere quei file derivati:

"**/*.js": { "when": "$(basename).ts"}

Allo stesso modo nascondi i .mapfile generati da:

 "**/*.js.map": { "when": "$(basename)"}

Quindi avrai una configurazione come in:

settings.json

// Place your settings in this file to overwrite default and user settings.
{
    "files.exclude": {
        "**/*.js": { "when": "$(basename).ts"},
        "**/*.js.map": { "when": "$(basename)"}
    }
}

Link: https://code.visualstudio.com/docs/languages/typescript#_hiding-derived-javascript-files


22

John Papa Twitter LINK afferma di utilizzare quanto segue:

"files.exclude": {
        "**/.git": true,
        "**/.DS_Store": true,
        "**/*.js" : {
            "when": "$(basename).ts"
        },
        "**/*.js.map": {
            "when": "$(basename)"
        }
}

15

Dal documento ufficiale :

per escludere i file JavaScript generati da entrambi i file di origine .ts e .tsx, utilizzare questa espressione:

"**/*.js": { "when": "$(basename).ts" },
"**/**.js": { "when": "$(basename).tsx" }

Questo è un po 'un trucco. Il modello glob di ricerca viene utilizzato come chiave. Le impostazioni sopra utilizzano due diversi schemi glob per fornire due chiavi univoche ma la ricerca corrisponderà comunque agli stessi file.

AGGIORNAMENTO 03/10/2017: con questo trucco abbiamo un problema con "cerca nella cartella". Si prega di vedere il problema


1
C'è un'altra soluzione per questo. L'ho pubblicato come risposta di seguito.
Zach Posten,

8

1. Vai su preferenze> impostazioni

inserisci qui la descrizione dell'immagine

2. Fai clic su "Modifica su settings.json" (Si trova nella parte inferiore dell'immagine)

inserisci qui la descrizione dell'immagine

3. Aggiorna l'oggetto json come puoi vedere nell'immagine. Quindi salva le modifiche Ctrl + Se basta.

"files.exclude": {
    "**/*.js": {"when": "$(basename).ts"}
}

inserisci qui la descrizione dell'immagine


6

Aggiungi queste impostazioni a settings.json nella cartella .vscode

// Place your settings in this file to overwrite default and user settings.
{
    "files.exclude" :{
    "**/.git":true,
    "**/.DS_Store":true,
    "**/*.map":true,
    "**/app/**/*.js":true

    }
}

Se settings.json non è disponibile, fare clic su File ---> Preferenze -> Impostazioni area di lavoro.


Dove si trova questo file ---> Preferenze -> Impostazioni dell'area di lavoro? Quando vado a File non ho nulla in relazione con le Preferenze e gli spazi di lavoro, quindi devo trovarmi nel posto sbagliato. Per tua informazione sto usando Visual Studio 2017 Enterprise.
MHOOS

5

Aggiungi le seguenti righe nel pannello "Impostazioni utente" per sovrascrivere "Impostazioni predefinite". Puoi nascondere i file {basename} .js e {basename} .js.map quando crei il file come {basename} .ts.

"files.exclude": {
        "**/*.js": {
            "when": "$(basename).ts"
        },
        "**/*.js.map": {
            "when": "$(basename)"
        }        
    }

Questo ha funzionato per me per i file sourcemap. Grazie @mutlugokhan. Sagolasin.
Seregwethrin,

4

Forse è meglio nascondere .mape .jsfile quando corrispondono al loro .tsfile corrispondente .
Puoi farlo copiando le seguenti righe in Impostazioni utente VS (Preferenze> Impostazioni utente):

// Workspace settings
"files.exclude": {
        "**/*.js":  {"when": "$(basename).ts"},
        "**/*.map": true
 }

Ciò nasconderà tutti i file con nomi che finiscono con .map.
Roy Tinker,

3

In VS Code vai su Codice (o File per utenti Windows)> Preferenze> Impostazioni area di lavoro e aggiungi questo frammento di codice:

{
   "files.exclude": {
      "**/*.js": {"when": "$(basename).ts"},
      "**/*.map": {"when": "$(basename).map"}
   }
}

0

Non esiste ancora una soluzione ufficiale per escludere un file glob in base a due diverse condizioni. Vedi questo numero .

Tuttavia, esiste una soluzione alternativa per definire due diversi modelli glob che hanno come target gli stessi file:

{
    "files.exclude": {
        "**/*.js": { "when": "$(basename).ts"},
        "**/*?.js": { "when": "$(basename).tsx"}
    }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.