• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

Rollup 과 npm 버전 관리 와 `npm audit fix` 에 관한 간결한 질문입니다.

21.02.02 21:07 작성 조회수 125

1

안녕하세요 강사님^^
최고의 강의 감사합니다

npm 모듈 버전명시를 해두신 것을 보고,
충돌이 잦아서 `저렇게 명시를 해둬야 하는구나` 싶으면서도  드는 의문이 생겼습니다

      1. `특정 모듈 설치 후에 생기는 충돌점은어떻게 관리하시나요?
        충돌이 없게끔, 한땀한땀 마이너 버전을 찾아야 되는건가요??`
        충돌없는 버전 찾는방법에 조막만한 Tip 이랄것이 있을까요?

      2. npm audit fix 가 취약점 해결 명령어 인걸로 아는데
        이것으로도 충돌이 해결되는 경우도 있나요?


버전명시해 두신것 보고 식은땀이 났습니다..ㅠㅠ
Svelte 의 생태계 기반이 잡혀나가는 현 시점에서는 어쩔수 없는 숙명이겠죠?

읽어주셔서 감사합니다!!

답변 1

답변을 작성해보세요.

1

Truestar 님 안녕하세요~
특급 칭찬 정말 감사합니다!!😆

버전 명시의 경우에는 온라인 강의 특성 때문입니다.
온라인 강의 촬영에 생각보다 많은 기회비용이 들어가기도 하고,
기존 영상 교체는 인프런의 검수가 필요합니다.
여러 상황으로 온라인 강의는 모듈 버전이 바뀐 내용을 매번 새로 추가/교체/삭제하기 아주 어렵습니다.
따라서 버전을 고정하고 그 내용만 다루는 거죠.
강의에서 중요한 건 모듈 버전이 아니고 핵심 로직과 흐름이니까요.

1번 질문의 경우, 저는 충돌이 발생하면 문제 원인을 찾아보고 해결 방법이 있는 경우 최신 버전을 유지한 상태로 해결하고, 방법이 없으면 모듈 버전을 다운그레이드하고 있습니다.
최신 버전 때문에 생기는 문제는 보통 아직 해결 방법이 없거나 해결이 쉽지 않은 경우가 많아서 다운그레이드가 여러모로 좋은 방법인데요.
반대로 생각해 보면 현업에서 프로젝트를 매번 최신 버전의 모듈로 관리했다간 충돌 대응만 하다가 일과가 끝날 겁니다.
그래서 조금 보수적으로 안정화된 버전을 사용하는 것이 좋습니다.

2번 질문의 경우, audit fix는 말씀하신 대로 취약점 해결이 목적이고 충돌 해결은 목적이 아니기 때문에, 특정 충돌이 해결되는 경우가 있더라도 관련이 없는 사례로 봐야할 듯하네요.

버전 명시는 Svelte만의 문제는 아니고, 모든 패키지 관리 프로젝트의 문제일 듯합니다.
Svelte가 아직은 변화가 빠르게 일어나는 단계라서 대응하기 쉽지 않지만,
안정화된 버전들 위주로 사용하시면 큰 문제는 없을 듯하고요,
지금 제가 Svelte로 만드는 회사 프로젝트도 버전을 올리려면 일정을 단단히 잡아놔야할 것 같네요.

특정 모듈 최신 버전에 내 프로젝트가 좌지우지될 기능이 들어있지 않은 이상,
하위 버전을 사용하는 게 여러모로 더 이득이지 않을까 합니다.
물론 상황에 따라 다를 수도 있겠지요~