이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

TypeScript 디버깅

Visual Studio Code는 내장된 Node.js 디버거Edge 및 Chrome 디버거를 통해 TypeScript 디버깅을 지원합니다.

JavaScript 소스 맵 지원

TypeScript 디버깅은 JavaScript 소스 맵을 지원합니다. TypeScript 파일에 대한 소스 맵을 생성하려면 --sourcemap 옵션으로 컴파일하거나 tsconfig.json 파일에서 sourceMap 속성을 true로 설정하세요.

인라인 소스 맵 (별도 파일 대신 데이터 URL로 내용이 저장되는 소스 맵)도 지원하지만, 인라인 소스 자체는 아직 지원되지 않습니다.

소스 맵 작동의 간단한 예시는 TypeScript 튜토리얼에서 확인할 수 있습니다. 이 튜토리얼에서는 다음 tsconfig.json 및 VS Code 기본 Node.js 디버깅 구성을 사용하여 간단한 "Hello World" Node.js 애플리케이션을 디버깅하는 방법을 보여줍니다.

{
  "compilerOptions": {
    "target": "ES5",
    "module": "CommonJS",
    "outDir": "out",
    "sourceMap": true
  }
}

더 고급 디버깅 시나리오를 위해 사용자 지정 디버그 구성 launch.json 파일을 만들 수 있습니다. 기본 구성을 보려면 실행 및 디버그 보기 (⇧⌘D (Windows, Linux Ctrl+Shift+D))로 이동하여 launch.json 파일 만들기 링크를 선택하세요.

이렇게 하면 프로젝트에서 감지된 기본값으로 .vscode 폴더에 launch.json 파일이 생성됩니다.

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/helloworld.ts",
      "preLaunchTask": "tsc: build - tsconfig.json",
      "outFiles": ["${workspaceFolder}/out/**/*.js"]
    }
  ]
}

VS Code는 실행할 프로그램인 helloworld.ts를 결정하고, 빌드를 preLaunchTask로 포함했으며, 생성된 JavaScript 파일을 어디서 찾을지 디버거에게 알려주었습니다.

launch.json에 대한 제안 및 정보와 함께 완전한 IntelliSense를 제공하여 다른 디버그 구성 옵션을 배울 수 있도록 도와줍니다. 오른쪽 하단의 구성 추가 버튼을 사용하여 launch.json에 새 디버그 구성을 추가할 수도 있습니다.

launch.json IntelliSense

예제 및 추가 설명을 보려면 Node.js 디버깅도 참조하세요.

출력 위치 매핑

생성된 (트랜스파일된) JavaScript 파일이 소스 옆에 있지 않은 경우, launch.json 구성에서 outFiles 속성을 설정하여 VS Code 디버거가 해당 파일을 찾도록 도울 수 있습니다. 원본 소스에 중단점을 설정할 때마다 VS Code는 outFiles의 glob 패턴으로 지정된 파일을 검색하여 생성된 소스를 찾으려고 시도합니다.

클라이언트 측 디버깅

TypeScript는 Node.js 애플리케이션뿐만 아니라 클라이언트 측 코드를 작성하는 데에도 훌륭하며, 내장된 Edge 및 Chrome 디버거를 사용하여 클라이언트 측 소스 코드를 디버깅할 수 있습니다.

클라이언트 측 디버깅을 보여주기 위해 작은 웹 애플리케이션을 만들어 보겠습니다.

새 폴더 HelloWeb을 만들고 다음 내용으로 세 개의 파일: helloweb.ts, helloweb.html, tsconfig.json을 추가하세요.

helloweb.ts

let message: string = 'Hello Web';
document.body.innerHTML = message;

helloweb.html

<!DOCTYPE html>
<html>
    <head><title>TypeScript Hello Web</title></head>
    <body>
        <script src="out/helloweb.js"></script>
    </body>
</html>

tsconfig.json

{
  "compilerOptions": {
    "target": "ES5",
    "module": "CommonJS",
    "outDir": "out",
    "sourceMap": true
  }
}

tsc를 실행하여 앱을 빌드한 다음 브라우저에서 helloweb.html을 열어 테스트하세요 (파일 탐색기에서 helloweb.html을 마우스 오른쪽 버튼으로 클릭하고 경로 복사를 선택하여 브라우저에 붙여넣을 수 있습니다).

실행 및 디버그 보기 (⇧⌘D (Windows, Linux Ctrl+Shift+D))에서 launch.json 파일 만들기를 선택하여 디버거로 Web App (Edge) 또는 원하는 경우 Web App (Chrome)을 선택하는 launch.json 파일을 생성합니다.

launch.json을 업데이트하여 helloweb.html의 로컬 파일 URL을 지정하세요.

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "msedge",
      "request": "launch",
      "name": "Launch Edge against localhost",
      "url": "file:///C:/Users/username/HelloWeb/helloweb.html",
      "webRoot": "${workspaceFolder}"
    }
  ]
}

이제 실행 및 디버그 보기 구성 드롭다운에 새 구성인 localhost에 Edge 실행이 표시됩니다. 해당 구성을 실행하면 웹 페이지가 있는 브라우저가 시작됩니다. 편집기에서 helloweb.ts를 열고 왼쪽 여백을 클릭하여 중단점(빨간색 원으로 표시됨)을 추가하세요. F5 키를 눌러 디버그 세션을 시작하면 브라우저가 실행되고 helloweb.ts의 중단점에서 멈춥니다.

client-side debug breakpoint

자주 묻는 질문

해당 JavaScript를 찾을 수 없어 프로그램을 실행할 수 없습니다.

tsconfig.json에서 `"sourceMap": true`를 설정하지 않았거나 launch.json에서 outFiles를 설정하지 않은 것으로 보이며, VS Code Node.js 디버거가 TypeScript 소스 코드를 실행 중인 JavaScript에 매핑할 수 없습니다. 소스 맵을 켜고 프로젝트를 다시 빌드하세요.

© . This site is unofficial and not affiliated with Microsoft.