Sass를 처음 시작할 때 settings.json에서 상대경로를 지정하며 한번쯤은 봤을 것이다.
→ "liveSassCompile.settings.generateMap":
false;
".map파일은 필요없으니 생성되지 않게 false로 지정해야한다"라고 대부분 말한다.
근데 .map파일이 뭔데 필요가 없다 그러고 필요가 없으면 왜 생겨나는 것인지 궁금해졌다.
아직 블로그를 많이 쓰지는 않았지만 지금까지 쓴 글들 중에 내가 투자한 시간이 가장 아깝지 않았다고 판단되는 공부였다 🤩
⚡️Sass/Scss의 기본에 대한 글은 따로 정리해놓았다.↓
Scss에 대해서 (p.s. 셋팅/컴파일/포맷/경로설정)
구글링을 해보니!! 언제나 구글링이 답이다
열심히 땅 판 흔적 자랑 \^o^/
이 .map파일은 소스맵(.map파일)의 정보를 브라우저에게 제공하기 위한 파일인 것이다. css파일이 압축(compressed)되지 않고 .map파일이 생성된 이상 개발자들이 브라우저의 개발 툴을 통해 라.이.브로 이 .map파일을 디버깅 할 수 있는 것이다.
그리고 브라우저에서 바로 scss를 편집하고 저장까지 할 수 있다고 한다!! (아직 실전에서 사용해보진 못해서 무슨 장점이 있는지 자세히는 모르겠으니 다음에 한번 적용해봐야겠다.)(참고:https://www.sitepoint.com/using-source-maps-debug-sass-chrome/)
소스맵이란:
실제로 .map을 false로 설정해 놓았을 때는 .css로 나타난다.
하지만 true로 설정해놓고, .map 파일이 생성됐을 때에는.scss가 바로 보인다.
개발 도구 창에서는 소스를 볼 수 있는데 바로 original source인 .scss 파일을 볼 수 있는 것이다.(맥은command
, 윈도우는ctrl
을 누른 상태에서 속성이나 속성 값을 클릭하면 Source 탭으로 바로 갈 수 있다.)
소스맵이 있어서 좋은점:
하지만 단점으로:
.map파일이 존재하는 이유는 브라우저에서 original source를 쉽게 접근할 수 있도록 만들기 위해서이다.
이러한 파일을 소스맵이라고 하는데 소스맵은 한마디로 압축된 파일과 원본코드를 연결해주는 연결고리이다. 비슷한 예로 Sass와 CSS 말고도 CoffeeScript와 JavaScript도 같은 맥락이다.
이 소스맵으로 개발자들은 디버깅도 할 수 있고 브라우저 즉석에서 수정도 가능하다. 하지만 용량이 크고 복잡한 파일들을 브라우저에서 수정하다 보면 꼬일 수도 있고 컴파일 시간도 걸리기 때문에 유의해야하는 점이 있다.
현업에서는 작업한 코드가 밖으로 유출되면 안되기 때문에 디버깅을 할 때에는 소스맵으로 한다고 해도 배포할 때에는 소스맵을 꼭 지우고 배포를 한다. 만약 브라우저에서 한 회사의 자산을 맘껏 볼 수 있다! 그러면 안되겠죠..?
개발을 접한지 오래 되지 않은 코린이/개린이는 사용할 일이 없기 때문에 false로 설정 하는게 대다수이다. 나처럼