Ukryj pliki .js.map w programie Visual Studio Code

320

Pracuję nad projektem maszynopisu w kodzie Visual Studio i chciałbym ukryć .js.map(a może nawet.js ) pliki przed pojawieniem się w eksploratorze plików.

Czy .tsw eksploratorze plików można wyświetlać tylko pliki?

Tyler
źródło

Odpowiedzi:

641

W ustawieniach (użytkownika lub obszaru roboczego) istnieje ustawienie, które można dostosować, aby ukryć wszystko, co chcesz:

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

Więc można dodać w następującej się ukryć .jsi .js.mapplików

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

Jak wyjaśnia ta inna odpowiedź , większość ludzi prawdopodobnie chce ukryć .jspliki tylko wtedy, gdy istnieje pasujący .tsplik.

Zamiast robić:

"**/*.js": true

możesz zrobić:

"**/*.js": {"when": "$(basename).ts"}
Brocco
źródło
10
Idealne rozwiązanie. Aby dodać, podejrzewam, że wielu użytkowników zainteresowanych tym będzie również zainteresowanych ukryciem katalogu node_modules. Można to zrobić w następujący sposób:"**/node_modules/": true
Josh1billion
czy istnieje skrót do dezaktywacji / aktywacji plików. wykluczyć opcję konfiguracji? kiedyś chcę sprawdzić coś ukrytego
aaalsubaie
103
"**/*.js": {"when": "$(basename).ts"},"**/*.map": {"when": "$(basename).map"}
iuristona
1
@aaalsubaie Aby włączyć / wyłączyć filtr wykluczania plików, w MarketPlace dostępne jest rozszerzenie na marketplace.visualstudio.com/items?itemName=nwallace.peep
AJ Qarshi
2
Czy to "**/*.map": {"when": "$(basename).map"}to samo co "**/*.map": true?
gdbj
190

Znalazłem to, jeśli masz standardowe pliki JS, będą one również ukryte, co może nie zawsze być tym, czego chcesz. Być może jest to lepsze, ponieważ ukrywa tylko pliki JS pasujące do plików TS ...

{
    "files.exclude": {
        "**/.git": true,
        "**/.DS_Store": true,
        "**/*.js.map": true,
        "**/*.js": {"when": "$(basename).ts"}
    }
}
AlwaysLearning
źródło
5
Czy możesz opublikować link do miejsca, w którym jest to udokumentowane? Chciałbym użyć bardziej złożonych form „kiedy”, ale nie mogę znaleźć, gdzie jest to udokumentowane.
masimplo
1
Ukrywanie pochodnych plików JS jest udokumentowane tutaj: code.visualstudio.com/docs/languages/…
Stuart Hallows
4
Jak zrobić to samo dopasowanie wzorca „kiedy” dla plików .js.map lub „.min.css” po skompilowaniu i zminimalizowaniu scss? Nie pasują do nich $ (basename)
nickspoon
Jest to sprytne, ale nie działa z czymś takim jak kątowy 2. Wszystko nazywa się file.component.ts lub file.module.ts
BentOnCoding
co jeśli pliki ts są w innym folderze?
Th3B0Y,
98

Naprawdę nie wiem, jak to się dzieje, ale do ukrywania .jsplików działa:

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

Do ukrywania .js.mapplików działa:

"**/*.js.map": {"when": "$(basename)"}
Luka
źródło
6
To rozwiązanie również działa .js.map, ponieważ Visual Studio Code wydaje się interpretować $(basename)jako wszystko przed finałem .. Można to uprościć "**/*.map: {"when": "$(basename)"}, ale wykluczałoby to wszystkie .map pliki, które mają odpowiadające .mappliki niebędące plikami.
Njål Nordmark
44

Podczas pracy z TypeScript często nie chcesz widzieć wygenerowanych plików JavaScript w eksploratorze ani w wynikach wyszukiwania. VS Code oferuje możliwości filtrowania z files.excludeustawieniem ( Plik> Preferencje> Ustawienia obszaru roboczego ) i możesz łatwo utworzyć wyrażenie, aby ukryć te pochodne pliki:

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

Podobnie ukryj wygenerowane .mappliki przez:

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

Będziesz miał konfigurację jak w:

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

Asim KT
źródło
22

John Papa Twitter LINK mówi:

"files.exclude": {
        "**/.git": true,
        "**/.DS_Store": true,
        "**/*.js" : {
            "when": "$(basename).ts"
        },
        "**/*.js.map": {
            "when": "$(basename)"
        }
}
YourAboutMeIsBlank
źródło
15

Z oficjalnego dokumentu :

aby wykluczyć pliki JavaScript generowane zarówno z plików źródłowych .ts, jak i .tsx, użyj tego wyrażenia:

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

To trochę sztuczka. Wzorzec glob wyszukiwania jest używany jako klucz. Powyższe ustawienia używają dwóch różnych wzorców globów, aby zapewnić dwa unikalne klucze, ale wyszukiwanie będzie nadal pasować do tych samych plików.

AKTUALIZACJA 10/3/2017: przy tej sztuczce mamy problem z „wyszukiwaniem w folderze”. Zobacz problem

duodvk
źródło
1
Istnieje inne obejście tego problemu . Opublikowałem to jako odpowiedź poniżej.
Zach Posten,
8

1. Przejdź do preferencji> ustawień

wprowadź opis zdjęcia tutaj

2. Kliknij „Edytuj w ustawieniach.json” (znajduje się na dole obrazu)

wprowadź opis zdjęcia tutaj

3. Zaktualizuj obiekt json, jak widać na obrazku. Następnie zapisz zmiany Ctrl + Si to wszystko.

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

wprowadź opis zdjęcia tutaj

Daniel Eduardo Delgado Diaz
źródło
6

Dodaj te ustawienia do pliku settings.json w folderze .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

    }
}

Jeśli plik settings.json nie jest dostępny, kliknij opcję Plik ---> Preferencje -> Ustawienia obszaru roboczego.

Aravind
źródło
Gdzie jest ten plik ---> Preferencje -> Ustawienia obszaru roboczego? Kiedy przechodzę do pliku, nie mam nic związanego z preferencjami i miejscami pracy, więc muszę być w niewłaściwym miejscu. Dla twojej informacji używam Visual Studio 2017 Enterprise.
MHOOS
5

Dodaj następujące wiersze w panelu „Ustawienia użytkownika”, aby zastąpić „Ustawienia domyślne”. Możesz ukryć pliki {basename} .js i {basename} .js.map podczas tworzenia pliku jako {basename} .ts.

"files.exclude": {
        "**/*.js": {
            "when": "$(basename).ts"
        },
        "**/*.js.map": {
            "when": "$(basename)"
        }        
    }
mutlugokhan
źródło
Ten działał dla mnie dla plików sourcemap. Dziękuję @mutlugokhan. Sagolasin.
Seregwethrin
4

Może lepiej ukryć .mapi .jspliki, gdy pasują do odpowiadającego im .tspliku.
Możesz to zrobić, kopiując następujące wiersze w VS User Settings (Preferencje> Ustawienia użytkownika):

// Workspace settings
"files.exclude": {
        "**/*.js":  {"when": "$(basename).ts"},
        "**/*.map": true
 }
mvecchione
źródło
Spowoduje to ukrycie wszystkich plików o nazwach kończących się na .map.
Roy Tinker,
3

W VS Code przejdź do Code (lub File dla użytkowników systemu Windows)> Preferencje> Ustawienia obszaru roboczego i dodaj ten fragment kodu:

{
   "files.exclude": {
      "**/*.js": {"when": "$(basename).ts"},
      "**/*.map": {"when": "$(basename).map"}
   }
}
reza.cse08
źródło
0

Nadal nie ma oficjalnego rozwiązania dla wykluczenia globu plików na podstawie dwóch różnych warunków. Zobacz ten problem .

Istnieje jednak obejście polegające na zdefiniowaniu dwóch różnych wzorców globów, które są kierowane na te same pliki:

{
    "files.exclude": {
        "**/*.js": { "when": "$(basename).ts"},
        "**/*?.js": { "when": "$(basename).tsx"}
    }
}
Zach Posten
źródło