npm 패키지 관리

이 페이지에서는 다음 작업을 설명합니다.

  • 패키지와 패키지 버전 보기 및 삭제
  • 태그 보기, 만들기, 업데이트 및 삭제

패키지 관리는 알파 버전입니다. 이 기능은 알파 사용자에게만 제공되며 컨테이너 관리에 사용할 수 있는 모든 기능이 포함되지 않을 수 있습니다. 알파 버전을 신청하려면 가입 양식을 작성하세요.

시작하기 전에

  1. 대상 저장소가 없으면 새 저장소를 만듭니다.
  2. 저장소에 필요한 권한이 있는지 확인합니다.
  3. npm 인증 구성
  4. (선택사항) gcloud 명령어의 기본값을 구성합니다.

패키지 추가

패키지의 특정 버전을 한 번만 게시할 수 있습니다. 이는 게시된 패키지 버전의 콘텐츠를 항상 동일하게 유지하는 npm 제한입니다. 따라서 다음과 같은 작업을 수행할 수 없습니다.

  • 패키지 버전을 저장소에 다시 게시하여 덮어쓰기
  • 저장소에서 패키지 또는 해당 버전을 삭제한 다음 동일한 이름 및 버전 번호로 패키지 게시

패키지를 추가하려면 다음 안내를 따르세요.

  1. package.json의 패키지 이름에 저장소에 구성된 범위가 포함되어 있는지 확인합니다. 다음 예시는 범위가 dev-repo인 패키지를 보여줍니다.

    "name": "@dev-repo/my-package"
    
  2. 저장소에 연결하기 위한 액세스 토큰을 새로고침합니다. google-artifactregistry-auth는 Artifact Registry 저장소의 사용자 인증 정보를 업데이트하는 클라이언트 라이브러리입니다.

    사용자 인증 정보를 새로고침하려면 다음 옵션 중 하나를 사용합니다.

    • npx을 직접 사용하여 액세스 토큰을 새로고침하세요. npm 5.2.0 이상을 사용하는 경우 npm에 포함되어 있습니다.

      1. 공개 npm 레지스트리에 연결하기 위한 사용자 인증 정보가 사용자 npm 구성 파일 ~/.npmrc에 있는지 확인합니다.

      2. npm 프로젝트 위의 폴더에서 다음 명령어를 실행합니다.

      npx google-artifactregistry-auth PROJECT-NPMRC
      

      여기서 PROJECT-NPMRC는 프로젝트 디렉터리에 있는 .npmrc 파일의 경로입니다.

      npx~/.npmrc의 공개 npm 레지스트리 사용자 인증 정보를 사용하여 google-artifactregistry-auth를 다운로드하도록 프로젝트 디렉터리 외부에서 명령어를 실행해야 합니다.

    • 프로젝트의 package.json 파일에 스크립트를 추가합니다.

      "scripts": {
        "artifactregistry-login": "npx google-artifactregistry-auth"
      }
      
      npm run artifactregistry-login PROJECT-NPMRC --registry https://registry.npmjs.org/
      

      여기서 PROJECT-NPMRC는 프로젝트 디렉터리에 있는 .npmrc 파일의 경로입니다.

    • 5.2.0 이전 버전의 npm은 다음 단계를 수행합니다.

      1. 다음 명령어를 실행합니다.
      npm install google-artifactregistry-auth --save-dev --registry https://registry.npmjs.org/
      
      1. 이 스크립트를 인증 스크립트에 추가합니다.
      "scripts": {
          "artifactregistry-login": "./node_modules/.bin/artifactregistry-auth",
      }
      

      스크립트 실행

      npm run artifactregistry-login PROJECT-NPMRC
      

      여기서 PROJECT-NPMRC는 프로젝트 디렉터리에 있는 .npmrc 파일의 경로입니다.

  3. 저장소에 패키지를 추가합니다. npm 또는 yarn 명령어를 사용할 수 있습니다.

    npm publish
    
    yarn publish
    

패키지 및 버전 보기

npm 또는 yarn로 패키지 정보를 가져오려면 적절한 명령어를 실행합니다.

npm view
yarn info

Google Cloud Console 또는 gcloud을 사용하여 패키지 및 패키지 버전을 보려면 다음 안내를 따르세요.

Console

  1. Google Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 저장소 목록에서 적절한 저장소를 클릭합니다.

    패키지 페이지에 저장소의 패키지가 나열됩니다.

  3. 패키지를 클릭하여 패키지 버전을 확인합니다.

gcloud

저장소에 있는 패키지를 나열하려면 다음 명령어를 실행합니다.

gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]

각 항목의 의미는 다음과 같습니다.

  • REPOSITORY은 저장소 이름입니다. 기본 저장소를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • LOCATION은 리전 또는 멀티 리전 위치입니다. 특정 위치의 저장소를 보려면 이 플래그를 사용합니다. 기본 위치를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.

패키지 버전을 보려면 다음 명령어를 실행합니다.

gcloud artifacts versions list --package=PACKAGE [--repository=REPOSITORY] [--location=LOCATION]

각 항목의 의미는 다음과 같습니다.

  • PACKAGE는 패키지의 ID 또는 패키지의 정규화된 식별자입니다.
  • REPOSITORY은 저장소 이름입니다. 기본 저장소를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • LOCATION은 리전 또는 멀티 리전 위치입니다. 특정 위치의 저장소를 보려면 이 플래그를 사용합니다. 기본 위치를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.

패키지 태그 지정

태그를 보고, 추가하고, 업데이트하고, 삭제할 수 있습니다.

태그 보기

패키지의 태그를 보려면 다음 안내를 따르세요.

Console

  1. Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 패키지를 클릭하여 버전과 관련 태그를 봅니다.

  3. 태그를 지정할 패키지 버전을 선택합니다.

  4. 선택한 버전 행에서 작업 더보기(작업 더보기)를 클릭한 후 태그 수정을 클릭합니다.

  5. 입력란에 새 태그를 입력하고 저장을 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud artifacts tags list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]

각 항목의 의미는 다음과 같습니다.

  • PACKAGE은 저장소에 있는 패키지의 이름입니다.
  • REPOSITORY은 저장소 이름입니다. 기본 저장소를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • LOCATION은 리전 또는 멀티 리전 위치입니다. 특정 위치의 저장소를 보려면 이 플래그를 사용합니다. 기본 위치를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.

예를 들어 기본 위치의 my-repo 저장소에서 my-package 패키지 태그를 보려면 다음 명령어를 실행합니다.

gcloud artifacts tags list --package=my-pkg --repository=my-repo

태그 생성

특정 패키지 버전의 태그를 만들 수 있습니다.

저장소의 기존 이미지를 태그하려면 다음 안내를 따르세요.

Console

  1. Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 패키지를 클릭하여 패키지 버전을 확인합니다.

  3. 태그를 지정할 패키지 버전을 선택합니다.

  4. 선택한 버전 행에서 작업 더보기(작업 더보기)를 클릭한 후 태그 수정을 클릭합니다.

  5. 입력란에 새 태그를 입력하고 저장을 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud artifacts tags create TAG --package=PACKAGE \
version=VERSION [--location=LOCATION] [--repository=REPOSITORY]

각 항목의 의미는 다음과 같습니다.

  • TAG은 패키지에 적용할 태그입니다.
  • PACKAGE은 저장소에 있는 패키지의 이름입니다.
  • VERSION은 태그를 지정할 패키지의 버전입니다.
  • LOCATION은 리전 또는 멀티 리전 위치입니다. 특정 위치의 저장소를 보려면 이 플래그를 사용합니다. 기본 위치를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • REPOSITORY은 저장소 이름입니다. 기본 저장소를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.

예를 들어 기본 위치에 있는 my-repo 저장소의 my-package 패키지 1.0.0 버전에 대한 release-candidate 태그를 만들려면 다음 명령어를 실행합니다.

gcloud artifacts tags create release-candidate --version=1.0.0 \
--package=my-pkg --repository=my-repo

태그 업데이트

패키지 버전과 연결된 태그를 변경할 수 있습니다.

기존 태그를 변경하는 방법은 다음과 같습니다.

Console

  1. Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 패키지를 클릭하여 패키지 버전을 확인합니다.

  3. 변경할 태그가 있는 패키지 버전을 선택합니다.

  4. 선택한 버전 행에서 작업 더보기(작업 더보기)를 클릭한 후 태그 수정을 클릭합니다.

  5. 태그를 수정하고 저장을 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud artifacts tags update TAG --package=PACKAGE \
version=VERSION [--location=LOCATION] [--repository=REPOSITORY]

각 항목의 의미는 다음과 같습니다.

  • TAG은 패키지에 적용할 태그입니다.
  • PACKAGE은 저장소에 있는 패키지의 이름입니다.
  • VERSION은 태그를 지정할 패키지의 버전입니다.
  • LOCATION은 리전 또는 멀티 리전 위치입니다. 특정 위치의 저장소를 보려면 이 플래그를 사용합니다. 기본 위치를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • REPOSITORY은 저장소 이름입니다. 기본 저장소를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.

예를 들어 패키지 my-package의 버전 1.0.0에 대한 태그를 기본 위치의 my-repo 저장소에서 production로 변경하려면 다음 명령어를 실행합니다.

gcloud artifacts tags update production --version=1.0.0 \
--package=my-pkg --repository=my-repo

패키지 버전 태그 해제

패키지 버전에서 기존 태그를 삭제할 수 있습니다.

태그를 삭제하려면 다음 단계를 따르세요.

Console

  1. Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 이미지를 클릭하여 이미지의 버전을 확인합니다.

  3. 태그 해제할 이미지 버전을 선택합니다.

  4. 선택한 버전 행에서 작업 더보기(작업 더보기)를 클릭한 후 태그 수정을 클릭합니다.

  5. 태그를 삭제하고 저장을 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud artifacts tags delete TAG --package=PACKAGE \
[--location=LOCATION] [--repository=REPOSITORY]

각 항목의 의미는 다음과 같습니다.

  • TAG은 패키지에 적용할 태그입니다.
  • PACKAGE은 저장소에 있는 패키지의 이름입니다.
  • LOCATION은 리전 또는 멀티 리전 위치입니다. 특정 위치의 저장소를 보려면 이 플래그를 사용합니다. 기본 위치를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • REPOSITORY은 저장소 이름입니다. 기본 저장소를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.

예를 들어 기본 위치에 있는 my-repo 저장소의 my-package 패키지에서 release-candidate 태그를 삭제하려면 다음 명령어를 실행합니다.

gcloud artifacts tags delete release-candidate --package=my-pkg \
--repository=my-repo

패키지 설치

npm 저장소에서 패키지를 설치하려면 npm install 또는 yarn add 명령어를 사용합니다.

npm install @SCOPE/PACKAGE
yarn add @SCOPE/PACKAGE

각 항목의 의미는 다음과 같습니다.

  • SCOPE은 저장소와 연결된 범위입니다.
  • PACKAGE은 저장소에 있는 패키지의 이름입니다.

npm 저장소가 범위로 구성되지 않은 경우 명령어에서 범위를 생략합니다.

npm install PACKAGE
yarn add PACKAGE

패키지를 package.json의 종속 항목으로 지정할 때 저장소의 범위를 포함해야 합니다. 다음 예시는 my-package라는 패키지의 @dev-repo 범위를 보여줍니다.

"dependencies": {
  "@dev-repo/my-package": ">=1.0.0"
}

패키지 삭제

패키지 또는 패키지 버전을 삭제하기 전에 통신에 관련된 중요한 종속 항목이나 통신이 있었는지 확인하세요.

패키지 버전이 게시된 후에는 버전을 삭제한 후에도 동일한 이름 및 버전 조합으로 패키지를 다시 게시할 수 없습니다. 이는 게시된 패키지 버전의 콘텐츠를 항상 동일하게 유지하는 npm 제한입니다.

사용자가 업데이트된 패키지 버전을 설치하도록 권장하려면 npm deprecate 명령어를 사용하여 패키지의 이전 버전을 지원 중단으로 표시합니다. 사용자가 지원 중단된 패키지를 설치하려고 하면 Artifact Registry가 지원 중단 경고를 반환합니다.

패키지를 삭제하려면 다음 안내를 따르세요.

Console

  1. Google Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 저장소 목록에서 적절한 저장소를 클릭합니다.

    패키지 페이지에 저장소의 패키지가 나열됩니다.

  3. 삭제할 위젯을 선택합니다.

  4. 삭제를 클릭합니다.

  5. 확인 대화상자에서 삭제를 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]

각 항목의 의미는 다음과 같습니다.

  • REPOSITORY은 저장소 이름입니다. 기본 저장소를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • LOCATION은 리전 또는 멀티 리전 위치입니다. 특정 위치의 저장소를 보려면 이 플래그를 사용합니다. 기본 위치를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • --async는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환됩니다.

패키지의 버전을 삭제하려면 다음 안내를 따르세요.

Console

  1. Google Cloud Console에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 저장소 목록에서 적절한 저장소를 클릭합니다.

    패키지 페이지에 저장소의 패키지가 나열됩니다.

  3. 패키지를 클릭하여 해당 패키지의 버전을 확인합니다.

  4. 삭제할 버전을 선택합니다.

  5. 삭제를 클릭합니다.

  6. 확인 대화상자에서 삭제를 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud artifacts versions delete VERSION \
[--repository=REPOSITORY] [--location=LOCATION] [--async]

각 항목의 의미는 다음과 같습니다.

  • REPOSITORY은 저장소 이름입니다. 기본 저장소를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • LOCATION은 리전 또는 멀티 리전 위치입니다. 특정 위치의 저장소를 보려면 이 플래그를 사용합니다. 기본 위치를 구성한 경우 이 플래그를 생략하여 기본값을 사용할 수 있습니다.
  • --async는 진행 중인 작업이 완료되기를 기다리지 않고 즉시 반환됩니다.

다음 단계