ฉันกำลังทำงานกับโปรเจ็กต์ typescript ในรหัส Visual Studio และต้องการซ่อนไฟล์.js.map
(และอาจเป็น.js
) ไฟล์ไม่ให้ปรากฏใน file explorer
เป็นไปได้หรือไม่ที่จะแสดงเฉพาะ.ts
ไฟล์ใน file explorer?
ฉันกำลังทำงานกับโปรเจ็กต์ typescript ในรหัส Visual Studio และต้องการซ่อนไฟล์.js.map
(และอาจเป็น.js
) ไฟล์ไม่ให้ปรากฏใน file explorer
เป็นไปได้หรือไม่ที่จะแสดงเฉพาะ.ts
ไฟล์ใน file explorer?
คำตอบ:
ในการตั้งค่าของคุณ (ผู้ใช้หรือพื้นที่ทำงาน) มีการตั้งค่าที่คุณสามารถปรับแต่งเพื่อซ่อนสิ่งที่คุณต้องการ:
{
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true
}
}
ดังนั้นคุณสามารถเพิ่มต่อไปนี้เพื่อซ่อน.js
และ.js.map
ไฟล์
"**/*.js": true,
"**/*.js.map": true
ตามที่คำตอบอื่น ๆ นี้อธิบายคนส่วนใหญ่อาจต้องการซ่อน.js
ไฟล์เมื่อมี.ts
ไฟล์ที่ตรงกันเท่านั้น
ดังนั้นแทนที่จะทำ:
"**/*.js": true
คุณอาจต้องการทำ:
"**/*.js": {"when": "$(basename).ts"}
"**/*.js": {"when": "$(basename).ts"},"**/*.map": {"when": "$(basename).map"}
"**/*.map": {"when": "$(basename).map"}
เช่นเดียวกับ"**/*.map": true
?
ฉันพบสิ่งนี้หากคุณมีไฟล์ JS มาตรฐานแล้วสิ่งเหล่านี้จะถูกซ่อนด้วยซึ่งอาจไม่ใช่สิ่งที่คุณต้องการ อาจเป็นการดีกว่าเนื่องจากซ่อนเฉพาะไฟล์ JS ที่ตรงกับไฟล์ TS ...
{
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
"**/*.js.map": true,
"**/*.js": {"when": "$(basename).ts"}
}
}
ฉันไม่รู้จริงๆว่ามันใช้งานอย่างไร แต่สำหรับการซ่อน.js
ไฟล์ทำงาน:
"**/*.js": {"when": "$(basename).ts"}
สำหรับการซ่อน.js.map
ไฟล์ทำงาน:
"**/*.js.map": {"when": "$(basename)"}
.js.map
เป็น Visual Studio รหัสดูเหมือนว่าจะตีความ$(basename)
ให้เป็นทุกอย่างก่อนที่.
สุดท้าย สามารถทำให้เป็นเรื่องง่าย"**/*.map: {"when": "$(basename)"}
แต่สิ่งนี้จะแยกไฟล์ใด ๆ .map
ที่มี.map
ไฟล์ที่ไม่สอดคล้องกัน
เมื่อคุณทำงานกับ TypeScript บ่อยครั้งที่คุณไม่ต้องการเห็นไฟล์ JavaScript ที่สร้างขึ้นใน explorer หรือในผลการค้นหา รหัส VS มีความสามารถในการกรองพร้อมการfiles.exclude
ตั้งค่า ( ไฟล์> การกำหนดค่าตามความชอบ>การตั้งค่าพื้นที่ทำงาน ) และคุณสามารถสร้างนิพจน์เพื่อซ่อนไฟล์ที่ได้รับ:
"**/*.js": { "when": "$(basename).ts"}
ซ่อน.map
ไฟล์ที่สร้างโดย:
"**/*.js.map": { "when": "$(basename)"}
ดังนั้นคุณจะมีการกำหนดค่าเหมือนใน:
settings.json
// Place your settings in this file to overwrite default and user settings.
{
"files.exclude": {
"**/*.js": { "when": "$(basename).ts"},
"**/*.js.map": { "when": "$(basename)"}
}
}
ลิงก์: https://code.visualstudio.com/docs/languages/typescript#_hiding-derived-javascript-files
John Papa Twitter LINKบอกว่าใช้สิ่งต่อไปนี้:
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
"**/*.js" : {
"when": "$(basename).ts"
},
"**/*.js.map": {
"when": "$(basename)"
}
}
จากเอกสารทางการ :
หากต้องการยกเว้นไฟล์ JavaScript ที่สร้างจากไฟล์ต้นฉบับ. ts และ. tsx ให้ใช้นิพจน์นี้:
"**/*.js": { "when": "$(basename).ts" },
"**/**.js": { "when": "$(basename).tsx" }
นี่เป็นเคล็ดลับเล็กน้อย รูปแบบ glob ค้นหาถูกใช้เป็นกุญแจสำคัญ การตั้งค่าด้านบนใช้รูปแบบ glob สองแบบเพื่อจัดหาคีย์เฉพาะสองปุ่ม แต่การค้นหาจะยังคงตรงกับไฟล์เดียวกัน
UPDATE 10/3/2560:ด้วยเคล็ดลับนี้เรามีปัญหากับ "ค้นหาในโฟลเดอร์" โปรดดูปัญหา
1. ไปที่การตั้งค่า> การตั้งค่า
2. คลิกที่ "แก้ไขใน settings.json" (อยู่ที่ด้านล่างของภาพ)
3. อัปเดตวัตถุ json ตามที่คุณเห็นในภาพ จากนั้นบันทึกการเปลี่ยนแปลงของคุณCtrl + S
และนั่นคือทั้งหมด
"files.exclude": {
"**/*.js": {"when": "$(basename).ts"}
}
เพิ่มการตั้งค่าเหล่านี้ในsettings.jsonในโฟลเดอร์. 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
}
}
หาก settings.json ไม่พร้อมใช้งานให้คลิกที่ไฟล์---> การตั้งค่า->การตั้งค่าพื้นที่ทำงาน
โปรดเพิ่มบรรทัดต่อไปนี้ในแผง "การตั้งค่าผู้ใช้" เพื่อแทนที่ "การตั้งค่าเริ่มต้น" คุณสามารถซ่อนไฟล์ {basename} .js และ {basename} .js.map เมื่อคุณสร้างไฟล์เป็น {basename} .ts
"files.exclude": {
"**/*.js": {
"when": "$(basename).ts"
},
"**/*.js.map": {
"when": "$(basename)"
}
}
อาจเป็นการดีกว่าที่จะซ่อน.map
และ.js
ไฟล์เมื่อตรงกับ.ts
ไฟล์ที่เกี่ยวข้อง
คุณสามารถทำได้โดยการคัดลอกบรรทัดต่อไปนี้ในการตั้งค่าผู้ใช้ VS (การตั้งค่า> การตั้งค่าผู้ใช้):
// Workspace settings
"files.exclude": {
"**/*.js": {"when": "$(basename).ts"},
"**/*.map": true
}
.map
ด้วย
ในรหัส VS ให้ไปที่รหัส (หรือไฟล์สำหรับผู้ใช้ Windows)> การตั้งค่า> การตั้งค่าพื้นที่ทำงานและเพิ่มข้อมูลโค้ดนี้:
{
"files.exclude": {
"**/*.js": {"when": "$(basename).ts"},
"**/*.map": {"when": "$(basename).map"}
}
}
ยังไม่มีวิธีแก้ปัญหาอย่างเป็นทางการสำหรับการแยกไฟล์ glob ตามเงื่อนไขสองประการ ดูปัญหานี้
มีวิธีแก้ปัญหาคือการกำหนดรูปแบบ glob สองแบบที่กำหนดเป้าหมายไฟล์เดียวกัน:
{
"files.exclude": {
"**/*.js": { "when": "$(basename).ts"},
"**/*?.js": { "when": "$(basename).tsx"}
}
}
"**/node_modules/": true