전문가로서 프로젝트에서 NPM 종속성을 관리하는 도구

왜 우리는 프로젝트 품질과 기술 부채에 대해 그렇게 많이 이야기합니까? 이는 개발 속도, 지원 복잡성, 새로운 기능 구현 시간, 현재 기능 확장 가능성에 직간접적으로 영향을 미치기 때문입니다.

프로젝트의 품질에 영향을 미치는 많은 측면이 있습니다. 그들 중 일부는 이해하기 어렵고 확인하기 어려우며 고도로 숙련된 개발자 또는 QA 엔지니어의 수동 확인이 필요합니다. 다른 것들은 평범하고 단순합니다. 자동으로 확인하고 수정할 수 있습니다. 이러한 사실에도 불구하고 그들은 전체 프로젝트 품질의 중요한 부분을 나타냅니다.

이 기사에서는 NPM 종속성, 라이센스 및 보안 문제 유효성 검사와 같은 프로젝트의 일부 중요한 측면을 자동으로 확인할 수 있는 NPM 패키지를 찾을 수 있습니다.

누락되거나 사용되지 않은 종속성 찾기



Depcheck는 사용되지 않는 종속성과 package.json에서 누락되었지만 코드 베이스에서 사용되는 종속성을 확인하는 데 유용한 작은 라이브러리입니다.

depcheck - Check for Vulnerabilities in Your Dependencies

다음 문제를 방지하려면 로컬(예: 사전 커밋 후크) 또는 원격 CI에서 사용하는 것이 좋습니다.
  • 중복 종속성은 빌드/번들 크기를 증가시켜 다음과 같은 결과를 초래합니다.
    AWS Lambda 핸들러도 콜드 스타트가 더 길고 이벤트가 람다 크기 제한을 초과할 수 있습니다.
  • 누락된 종속성은 프로덕션 환경에서 완전히 예상치 못한 방식으로 응용 프로그램을 손상시킬 수 있습니다. 또한 충돌이 발생할 수 있습니다.
    개발 종속성인 경우 CI/CD 파이프라인.

  • 설치 및 사용

    npm install -g depcheck
    // or
    yarn global add depcheck
    


    사용 예

    // usage as npm script
    "dependencies:check": "yarn run depcheck",
    


    이 명령을 실행하면 발행된 종속성 목록을 볼 수 있습니다.



    발급된 종속성 목록



    npm-audit , yarn auditimproved-yarn-audit 은 종속성 취약성을 찾을 수 있는 도구입니다. 또한 패키지를 자동으로 업데이트하여 문제를 해결합니다. npm 감사와 원사 감사는 모두 패키지 관리자와 함께 사전 설치되지만 개선된 원사 감사를 선호합니다. 몇 가지 개선 사항을 제공하는 원사 감사 래퍼입니다. 특히 CI 파이프라인에서 사용하는 경우(문서에서):
  • 권고를 무시할 수 없음
  • 심각도가 낮은 문제를 필터링할 수 없음
  • NPM 레지스트리의 진행 중인 네트워크 문제로 인해 오탐지가 발생함

  • improved-yarn-audit - This project aims to improve upon the existing Yarn package manager audit functionality

    설치

    npm install -g improved-yarn-audit
    // or
    yarn global add improved-yarn-audit
    


    사용 예

    "dependencies:audit": "yarn run improved-yarn-audit — min-severity moderate",
    


    아래에서 실제 프로젝트 코드베이스에서 이 명령을 사용한 결과를 볼 수 있습니다. 이 도구는 전이 종속성에서도 취약성을 검색합니다.



    종속성 라이선스 확인



    실제 프로덕션 프로젝트의 경우 의존성을 사용하는 방식이 패키지 라이선스에 의해 금지될 수 있기 때문에 의존성 라이선스를 사용하는 것이 중요합니다. 이를 방지하려면 프로젝트에서 사용하는 모든 종속 항목의 라이선스를 지속적으로 확인해야 합니다. 그리고 프로젝트가 스타트업인 경우 투자자가 제품을 승인하도록 하려면 라이센스에 따라 종속성을 적절하게 사용해야 합니다. license-checker가 가장 좋은 방법입니다!

    license-checker - Ever needed to see all the license info for a module and its dependencies?

    설치

    npm install -g license-checker
    // or
    yarn global add license-checker
    


    사용 예

    "licenses:check": "yarn run license-checker --exclude 'MIT, MIT OR X11, BSD, ISC'",
    


    종속성 라이선스 확인



    그러나 CI/CD 내부에서 사용하는 경우 훨씬 더 짧기 때문에 다음 변형을 선호합니다.

    "licenses:check:ci": "yarn run license-checker — summary",
    




    이 기사가 NPM 패키지의 문제를 해결하거나 피하는 데 도움이 되었기를 바랍니다.
    읽어 주셔서 감사합니다!

    좋은 웹페이지 즐겨찾기