Sembunyikan file .js.map dalam Visual Studio Code

320

Saya sedang mengerjakan proyek naskah dalam kode Visual Studio dan ingin menyembunyikan file .js.map(dan bahkan mungkin .js) muncul di file explorer.

Apakah mungkin hanya menampilkan .tsfile dalam file explorer?

Tyler
sumber

Jawaban:

641

Di pengaturan Anda (baik pengguna atau ruang kerja) ada pengaturan yang dapat Anda tweak untuk menyembunyikan apa pun yang Anda inginkan:

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

Jadi, Anda dapat menambahkan yang berikut ini untuk disembunyikan .jsdan .js.mapfile

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

Seperti yang dijelaskan oleh jawaban lain ini , kebanyakan orang mungkin hanya ingin menyembunyikan .jsfile ketika ada .tsfile yang cocok .

Jadi alih-alih melakukan:

"**/*.js": true

Anda mungkin ingin melakukan:

"**/*.js": {"when": "$(basename).ts"}
Brocco
sumber
10
Solusi sempurna. Untuk menambahkan, saya curiga banyak pengguna yang tertarik pada ini juga akan tertarik menyembunyikan direktori node_modules. Itu bisa dilakukan seperti ini:"**/node_modules/": true
Josh1billion
adakah jalan pintas untuk menonaktifkan / mengaktifkan opsi files.exclude config? kadang-kadang saya ingin memeriksa sesuatu yang disembunyikan
aaalsubaie
103
"**/*.js": {"when": "$(basename).ts"},"**/*.map": {"when": "$(basename).map"}
iuristona
1
@aaalsubaie Untuk mengaktifkan / menonaktifkan filter kecualikan file, ada ekstensi yang tersedia di MarketPlace di marketplace.visualstudio.com/items?itemName=nwallace.peep
AJ Qarshi
2
Apakah "**/*.map": {"when": "$(basename).map"}sama dengan "**/*.map": true?
gdbj
190

Saya menemukan ini, Jika Anda memiliki file JS standar maka ini akan disembunyikan juga yang mungkin tidak selalu seperti yang Anda inginkan. Mungkin ini lebih baik karena hanya menyembunyikan file JS yang cocok dengan file TS ...

{
    "files.exclude": {
        "**/.git": true,
        "**/.DS_Store": true,
        "**/*.js.map": true,
        "**/*.js": {"when": "$(basename).ts"}
    }
}
Selalu belajar
sumber
5
Bisakah Anda memposting tautan ke tempat ini didokumentasikan? Saya ingin menggunakan bentuk "kapan" yang lebih kompleks, tetapi tidak dapat menemukan di mana itu didokumentasikan.
masimplo
1
Menyembunyikan file JS yang diturunkan didokumentasikan di sini: code.visualstudio.com/docs/languages/…
Stuart Hallows
4
Bagaimana Anda melakukan pencocokan pola "kapan" yang sama untuk file .js.map, atau ".min.css" setelah mengkompilasi dan memperkecil scss? Mereka tidak cocok dengan $ (basename)
nickspoon
Ini cerdas, tetapi tidak bekerja dengan sesuatu seperti sudut 2. Semuanya bernama file.component.ts atau file.module.ts
BentOnCoding
bagaimana dengan ketika file ts ada di folder yang berbeda?
Th3B0Y
98

Saya benar-benar tidak tahu bagaimana ini diterapkan tetapi untuk menyembunyikan .jsfile berfungsi:

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

Untuk menyembunyikan .js.mapfile berfungsi:

"**/*.js.map": {"when": "$(basename)"}
Luka
sumber
6
Solusi ini juga menangani .js.map, karena Visual Studio Code tampaknya menafsirkan $(basename)segalanya sebelum final .. Bisa disederhanakan "**/*.map: {"when": "$(basename)"}, tetapi ini akan mengecualikan setiap .map file yang memiliki sesuai non .mapberkas.
Njål Nordmark
44

Ketika Anda bekerja dengan TypeScript, Anda sering tidak ingin melihat file JavaScript yang dihasilkan di explorer atau dalam hasil pencarian. Kode VS menawarkan kemampuan pemfilteran dengan files.excludepengaturan ( File> Preferensi> Pengaturan Workspace ) dan Anda dapat dengan mudah membuat ekspresi untuk menyembunyikan file-file yang diturunkan:

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

Demikian pula menyembunyikan .mapfile yang dihasilkan oleh:

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

Jadi Anda akan memiliki konfigurasi seperti di:

settings.json

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

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

Asim KT
sumber
22

John Papa Twitter LINK mengatakan gunakan yang berikut ini:

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

Dari dokumen resmi :

untuk mengecualikan file JavaScript yang dihasilkan dari file sumber .ts dan .tsx, gunakan ungkapan ini:

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

Ini sedikit trik. Pola gumpalan pencarian digunakan sebagai kunci. Pengaturan di atas menggunakan dua pola glob berbeda untuk memberikan dua kunci unik tetapi pencarian tetap akan cocok dengan file yang sama.

UPDATE 10/3/2017: dengan trik ini kami memiliki masalah dengan "pencarian di folder". Silakan lihat masalahnya

duodvk
sumber
1
Ada solusi lain untuk ini. Saya mempostingnya sebagai jawaban di bawah ini.
Zach Posten
8

1. Buka preferensi> pengaturan

masukkan deskripsi gambar di sini

2. Klik pada "Edit pada pengaturan.json" (Ada di bagian bawah gambar)

masukkan deskripsi gambar di sini

3. Perbarui objek json seperti yang Anda lihat pada gambar. Kemudian simpan perubahan Anda Ctrl + Sdan itu saja.

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

masukkan deskripsi gambar di sini

Daniel Eduardo Delgado Diaz
sumber
6

Tambahkan pengaturan ini ke pengaturan Anda. Json di folder .vscode Anda

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

    }
}

Jika pengaturan.json tidak tersedia klik pada File ---> Preferences -> Pengaturan Workspace.

Aravind
sumber
Di mana File ini ---> Preferensi -> Pengaturan Workspace? Ketika saya masuk ke File, saya tidak memiliki apa pun yang terkait dengan Preferensi dan ruang kerja jadi saya harus berada di tempat yang salah. Untuk informasi Anda, saya menggunakan Visual Studio 2017 Enterprise.
MHOOS
5

Harap tambahkan baris berikut di panel "Pengaturan Pengguna" untuk mengganti "Pengaturan Default". Anda dapat menyembunyikan file {basename} .js dan {basename} .js.map ketika Anda membuat file sebagai {basename} .ts.

"files.exclude": {
        "**/*.js": {
            "when": "$(basename).ts"
        },
        "**/*.js.map": {
            "when": "$(basename)"
        }        
    }
mutlugokhan
sumber
Yang ini berfungsi untuk saya untuk file-file sourcemap. @Mutlugokhan terima kasih. Sagolasin.
Seregwethrin
4

Mungkin lebih baik menyembunyikan .mapdan .jsfile ketika mereka cocok dengan .tsfile yang sesuai .
Anda dapat melakukannya dengan menyalin baris berikut di Pengaturan Pengguna VS (Preferensi> Pengaturan Pengguna):

// Workspace settings
"files.exclude": {
        "**/*.js":  {"when": "$(basename).ts"},
        "**/*.map": true
 }
mvecchione
sumber
Ini akan menyembunyikan semua file dengan nama yang diakhiri .map.
Roy Tinker
3

Dalam Kode VS, buka Kode (atau File untuk pengguna Windows)> Preferensi> Pengaturan Workspace dan tambahkan potongan kode ini:

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

Masih belum ada solusi resmi untuk mengecualikan file glob berdasarkan dua kondisi berbeda. Lihat masalah ini .

Namun ada solusi untuk menentukan dua pola glob berbeda yang menargetkan file yang sama:

{
    "files.exclude": {
        "**/*.js": { "when": "$(basename).ts"},
        "**/*?.js": { "when": "$(basename).tsx"}
    }
}
Zach Posten
sumber