TypeScript로 작성된 종속성이 있습니다. 종속성에는 NPM 패키지의 원본 맵과 원본 소스가 포함됩니다. 내 코드에 중단 점을 설정 한 다음 종속성에 들어가면 컴파일 된 JavaScript가 아닌 TypeScript로 올바르게 이동합니다. 그러나 TypeScript 코드에서 중단 점을 설정 한 다음 내 앱을 실행하면 VSCode에 다음과 같이 표시됩니다.VSCode에서 NPM 종속성에 대한 원본 맵을로드하려면 어떻게합니까?
생성 된 코드가 없기 때문에 중단 점이 무시되었습니다 (소스 맵에 문제가 있습니까?).
을 종속성으로 이동 한 후 모든 것이 작동합니다.
나는 소스 맵이 일방적이므로, TypeScript 소스 파일에 중단 점이있을 때 JavaScript가 어디에 있는지를 알지 못한다. (실제로는 중단 점을 설정하는 데 필요하다. 노드 디버거). 자바 스크립트 파일이 열리면 VSCode가 두 개의 현재 중단 점을 일치시킬 수 있습니다.
는 그래서 질문 내 TS 중단 점은 시작에서 작동 할 수 있도록 가 어떻게 파일에 첫 번째 단계로하지 않고, 그것을 만들 수있다? 종속성은 많은 파일이며 매 실행마다 문제가 발생합니다. 특히 디버깅하는 특정 문제가 너무 오래 걸리면 (2 초 이상) 소켓 연결 시간 초과가 발생하기 때문에 문제가됩니다.
내가 원하는 것은 TypeScript에 "디버거가 시작될 때이 JavaScript 파일을 구문 분석하고 소스 맵을 동기화하여 중단 점이 올바르게 일치하도록"하는 것입니다.
TypeScript 파일의 중단 점을 통해 종속성 자체를 디버깅 할 수 있기 때문에 일반적인 기능을 사용할 수 있음을 알고 있습니다. NPM 모듈로로드 될 때 일부 정보가 손실 된 것 같습니다.
나는 혼란이 s를 배포하는 패키지 때문에 발생한다고 생각한다. ource 코드. 일반적인 경우에는 그렇지 않아야합니다. 그리고 코드를 디버깅하려고하면 코드를 실행한다는 의미입니다. 코드를 실행하면 TypeScript 소스 코드 대신 JavaScript 코드를 실행한다는 것을 의미합니다 (따라서 소스 맵이 필요함). 소스 코드에 중단 점을두면 실행되지 않으므로 작동하지 않을 수 있습니다. (디버그 모드에서) 실행하면 "소스 코드"가 소스 맵과 연결되어 작동합니다. – unional
나는 이것이 편리하지 않다는 것에 동의하고, 아마 VSCode가 그것에 대해 뭔가를 할 수있을 것이다. 다른 IDE에서이 문제점에 대해 더 잘 알고 있습니까? – unional
원본 소스 코드를 디버깅 할 때, 특히 원래 소스가 약속을 사용하고 ES5로 옮겨지면 절대적인 지옥이 될 수 있습니다. C/C++로 코드를 작성할 때 어셈블리 명령어 디버깅만큼 효과적입니다. 대부분의 언어에서 분산 바이너리는 컴파일되지만 디버깅 도구는 (항상?) 바이너리와 함께 소스 코드를 배포하여 디버깅이 정상적 이도록 지원합니다. 이것은 C# 및 Java와 일부 작업 C/C++에서 마찬가지입니다. 나는 그것이 Go와 Rust도 마찬가지라고 생각한다. –