자바 스크립트 .map 파일-자바 스크립트 소스 맵


357

최근에 Angular.js.map 와 같은 일부 JavaScript 라이브러리와 함께 제공되는 확장명을 가진 파일을 보았는데 머릿속에 몇 가지 질문이 생겼습니다.

  • 무엇입니까? 왜 Angular의 직원들이 .js.map파일 을 전달 해야합니까?
  • (JavaScript 개발자로서) angular.min.js.map파일을 어떻게 사용할 수 있습니까?
  • .js.mapJavaScript 응용 프로그램 용 파일을 만들 때주의해야합니까 ?
  • 어떻게 만들어 지나요? 나는 살펴 보았고 angular.min.js.map이상한 형식의 문자열로 채워져 수동으로 생성되지 않았다고 가정합니다.

답변:


550

.map에 대한 파일은 jscss(지금은 ts너무) 파일이 축소 된 된 그. 이를 소스 맵이라고합니다. angular.js 파일과 같은 파일을 축소하면 수천 줄의 예쁜 코드가 필요하며 몇 줄의 못생긴 코드로 바뀝니다. 코드를 프로덕션으로 배송 할 때 전체 비정형 버전 대신 축소 된 코드를 사용하고 있기를 바랍니다. 앱이 제작 중이고 오류가 발생하면 소스 맵은 못생긴 파일을 가져 와서 원래 버전의 코드를 볼 수있게합니다. 소스 맵이 없다면 오류는 기껏해야 비밀리에 보일 것입니다.

CSS 파일과 동일합니다. SASS 또는 LESS 파일을 가져 와서 CSS로 컴파일하면 원래 형식과 전혀 다르게 보입니다. 소스 맵을 활성화하면 수정 된 상태 대신 파일의 원래 상태를 볼 수 있습니다.

따라서 순서대로 질문에 대답하려면 다음을 수행하십시오.

  • 무엇입니까? 못생긴 코드를 역 참조하려면
  • 개발자는 어떻게 사용할 수 있습니까? 프로덕션 앱을 디버깅하는 데 사용합니다. 개발 모드에서는 정식 버전의 Angular를 사용할 수 있습니다. 프로덕션에서는 축소 버전을 사용합니다.
  • js.map 파일을 생성해야합니까? 프로덕션 코드를 더 쉽게 디버깅 할 수 있다면 신경 써야합니다.
  • 어떻게 만들어 지나요? 빌드시 작성됩니다. 다른 파일과 마찬가지로 .map 파일을 빌드 할 수있는 빌드 도구가 있습니다.https://github.com/gruntjs/grunt-contrib-uglify/issues/71

이것이 의미가 있기를 바랍니다.


19
맵 파일은 당신이 그것을 호출 전까지 전송되지 않습니다, 즉 나를 혼동 만든 것입니다 stackoverflow.com/a/27196201/861487
Abdelouahab

2
고맙습니다 애런, 이것은 내가 소스 맵에 대해 본 더 나은 설명 중 하나입니다. 나는 그것을 꿀꺽 꿀꺽에 사용하고 있으며 꿀꺽 꿀꺽에 대한 모든 것을 배웠고 소스 맵이 어떻게 사용되는지 정확히 궁금해했습니다. 대부분의 펄프 플러그인은 1 년 전과 일부 호환되지 않았던 시점과 호환됩니다. 그냥 말이되고 싶었다!
Eric Bishard

@frosty 못생긴 코드를 역 참조하려면 . 이것을 설명해 주시겠습니까? .js.map파일 이 직접 제작 한 파일과 축소 된 파일 간의 관계 (종종 참조 라고 함 )를 유지 하지 않습니까?
Mohammed Zameer

1
@student 축소 된 코드를 참조하고 싶지 않기 때문에 참조 해제라고 말합니다. 그것은 축소되어 있으며 그것을 보면 가치가 없습니다. 그러나 원래 소스로 다시 참조 해제 할 수 있다면 서사시 일 것입니다. 그것이 바로 소스 맵입니다. 도움이 되길 바랍니다.
frosty

나는이 답변을 좋아하지만 (감사합니다) 420 개의 좋아요가 있습니다 ... 깨뜨 립니까?
Eric Reed


31
  • 개발자는 어떻게 사용할 수 있습니까?

의견에서 이에 대한 답변을 찾지 못했습니다. 사용 방법은 다음과 같습니다.

  1. index.html 파일에서 js.map 파일을 연결하지 마십시오 (필요하지 않음).
  2. 최소화 도구 (좋은 도구)는 .min.js에 주석을 추가 합니다 파일에 합니다.

    // # sourceMappingURL = yourFileName.min.js.map

당신을 연결합니다 .map 파일 .

min.jsjs.map 파일이 준비 ...

  1. Chrome : dev-tools를 열고 소스 탭으로 이동하면 축소되지 않은 애플리케이션 파일이 보관 된 소스 폴더 가 표시 됩니다.

14

맵 파일은 축소되지 않은 파일을 축소 된 파일에 매핑합니다. 축소되지 않은 파일을 변경하면 변경 사항이 파일의 축소 된 버전에 자동으로 반영됩니다.


2

지도 파일 사용법에 추가하기 만하면됩니다. 우분투에는 크롬을 사용하고 소스로 이동하여 파일을 클릭하면 맵 파일이 있으면 원본 파일을 볼 수 있고 수행 방법을 알려주는 메시지가 나타납니다.

오늘 작업 한 Angular 파일의 경우 클릭

Ctrl-P와 원본 파일 목록이 작은 창에 나타납니다.

그런 다음 목록을 탐색하여 검사하려는 파일을보고 문제가있는 위치를 확인할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.