Renovate 또는 Dependabot을 사용하여 종속성을 업데이트하십시오.

종속성을 최신 상태로 유지하는 것은 건전한 프로젝트의 중요한 부분이지만 백엔드 또는 인프라에 비해 프론트엔드에서 종종 간과됩니다(보안 위험이 낮기 때문입니까?).

최신 버전의 라이브러리를 사용하면 귀하와 귀하의 팀원이
  • 보안 신뢰도
  • 성능 최적화
  • 버그 수정
  • 최신 기능 및 새 API에 액세스

  • 그러나 프로젝트가 필요한 환경(모바일 애플리케이션의 경우 새 브라우저 또는 앱 스토어의 새 요구 사항)에서 작동할 수 없을 때 중요한 수준의 문제로 이어질 수 있는 중요성이 간과되는 경우가 많습니다.

    종속성 업데이트 전략은 팀의 규모, 작업 중인 제품의 종류 등에 따라 다를 수 있습니다. 일부 대기업에서는 종속성에 대한 특수 부서 및 개인 저장소도 있을 수 있습니다.

    중간 규모의 개발자 팀(및 비건강/재산 위험 프로젝트)에서 작업하면서 업데이트에 대해 2가지 접근 방식을 시도했습니다.

    라이브러리별, 라이브 업데이트



    가장 먼저 떠오르는 것은 이제 Github의 "네이티브"솔루션인 Dependabot입니다. Dependabot은 새 버전의 라이브러리가 있으면 PR을 엽니다.

    활성화 방법: app.dependabot.com을 방문하여 추가할 리포지토리를 선택합니다.

    가격: 무료.

    활성화되면 Dependabot이 새 버전에 대한 PR을 열기 시작합니다.


    풀 리퀘스트 탭의 depends-bot

    Dependabot은 다음 내용으로 PR을 엽니다.


    Dependabot의 풀 리퀘스트 설명

    일괄 업데이트, 한 달에 한 번



    곧 우리는 라이브러리별 라이브 업데이트가 너무 장황하다는 것을 깨달았습니다.
    Dependabot의 경우 주요 업데이트에 대해서만 공개되도록 PR을 설정할 기회가 없었으므로 Renovate를 사용한 또 다른 시도:

    활성화 방법: renovatebot.com을 방문하여 추가할 리포지토리를 선택합니다.
    가격: 무료.

    한 달에 한 번 Renovatebot에게 배치 PR을 열도록 요청할 수 있습니다.

    풀 리퀘스트 탭에서 리노베이션

    다음 구성으로 Renovate는 다음 내용으로 매월 PR을 엽니다.

    renovate의 풀 리퀘스트 설명

    우리가 정한 renovate.json 구성은 다음과 같습니다.

    {
      "extends": [
        "config:base",
        "group:all",
        // Regular updates
        "schedule:monthly"
      ],
      // Random assignee of PR
      "assigneesFromCodeOwners": true,
      "assigneesSampleSize": 1,
      "separateMinorPatch": true,
      "packageRules": [
        {
          // Only major and minor updates
          "updateTypes": ["patch"],
          "enabled": false
        }
      ],
      // Encrypted NPM token for private packages
      "encrypted": {
        "npmToken": "w/0FYXCXO1aYkUeivEFbB7yG/CPM4xC2ksGVLLua0rNMYyEF8bxlrYqMtJqriuG53oecATlrSzgh06/U3sYkA2ZNgHabyoinZWc+fI0rchCCgSH0EXIeRifZH+nRNY69e5EleMOT0wNrkYlSuWN0U0uOU53ZZB+bojKPEpWhULZTOC6nXsN5WOrYdP0T1Tw=="
      }
    }
    


    deps 업데이트 의무에 대한 몇 가지 다른 권장 사항:
  • 업데이트가 정기적이지만 너무 장황하지 않도록 균형을 찾으십시오.
  • 기여자 중 한 명에게 업데이트 PR을 무작위로 할당합니다.
  • 새 API 및 기능에 대한 주요 업데이트가 있는 라이브러리를 확인하십시오.
  • 일부 라이브러리를 업데이트할 수 없는 경우 업데이트 로그를 작성합니다.
  • 좋은 웹페이지 즐겨찾기