

Amazon CodeCatalyst는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [CodeCatalyst에서 마이그레이션하는 방법](migration.md) 단원을 참조하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# npm 구성 및 사용
<a name="packages-npm-use"></a>

`npm`를 CodeCatalyst와 함께 사용하려면 패키지 리포지토리에 `npm`를 연결하고 인증을 위한 개인 액세스 토큰(PAT)을 제공해야 합니다. CodeCatalyst 콘솔에서 패키지 리포지토리에 `npm`을 연결하기 위한 지침을 볼 수 있습니다.

**Contents**
+ [CodeCatalyst를 사용하여 npm 구성](#npm-configure)
+ [CodeCatalyst 패키지 리포지토리에서 npm 패키지 설치](#npm-install)
+ [CodeCatalyst를 통해 npmjs에서 npm 패키지 설치](#npm-install-npmjs)
+ [CodeCatalyst 패키지 리포지토리에 npm 패키지 게시](#npm-publish)
+ [npm 명령 지원](#npm-commands)
  + [리포지토리와 상호 작용하는 지원되는 명령](#supported-commands-that-interact-with-a-repository)
  + [지원되는 클라이언트 측 명령](#supported-client-side-commands)
  + [지원되지 않는 명령](#unsupported-commands)

## CodeCatalyst를 사용하여 npm 구성
<a name="npm-configure"></a>

다음 지침은 CodeCatalyst 패키지 리포지토리를 인증하고 `npm`에 연결하는 방법을 설명합니다. npm에 대한 자세한 내용은 [공식 npm 설명서](https://docs.npmjs.com/)를 참조하세요.

**CodeCatalyst 패키지 리포지토리`npm`에 연결하려면**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/)에서 CodeCatalyst 콘솔을 엽니다.

1. 프로젝트로 이동합니다.

1. 탐색 창에서 **패키지**를 선택합니다.

1. 목록에서 패키지 리포지토리를 선택합니다.

1. **리포지토리에 연결**을 선택합니다.

1. **구성 세부 정보**의 **패키지 관리자 클라이언트**에서 **npm 클라이언트**를 선택합니다.

1. 해당하는 구성 단계를 보기 위해 사용 중인 운영 체제를 선택합니다.

1. CodeCatalyst를 사용하여 npm을 인증하려면 개인 액세스 토큰(PAT)이 필요합니다. 토큰이 이미 있으면 해당 토큰을 사용할 수 있습니다. 토큰이 없다면, 다음 단계를 통해 생성할 수 있습니다.

   1. **(선택 사항):** **PAT 이름** 및 **만료 날짜**를 업데이트합니다.

   1. **토큰 생성**을 선택합니다.

   1. PAT를 복사하여 안전한 위치에 저장합니다.
**주의**  
대화 상자를 닫으면 PAT를 다시 보거나 복사할 수 없습니다. 자격 증명은 공격자가 자격 증명을 유용한 후 사용할 수 있는 기간을 최소화하도록 수명이 짧아야 합니다.

1. 프로젝트의 루트 디렉터리에서 다음 명령을 실행하여 패키지 리포지토리로 npm을 구성합니다. 명령은 다음을 수행합니다.
   + 프로젝트에 아무 파일도 없는 경우 프로젝트 수준의 `.npmrc` 파일을 생성합니다.
   + 패키지 리포지토리 엔드포인트 정보를 프로젝트 수준의 `.npmrc` 파일에 추가합니다.
   + 사용자 수준의 `.npmrc` 파일에 자격 증명(PAT)을 추가합니다.

   다음 값을 교체합니다.
**참고**  
콘솔 지침에서 복사하는 경우 다음 명령의 값이 업데이트되므로 변경할 필요가 없습니다.
   + *username*을 CodeCatalyst 사용자 이름으로 바꿉니다.
   + *PAT*를 CodeCatalyst PAT로 바꿉니다.
   + *space\$1name*을 CodeCatalyst 스페이스 이름으로 바꿉니다.
   + *proj\$1name*을 CodeCatalyst 프로젝트 이름으로 바꿉니다.
   + *my\$1repo*를 CodeCatalyst 패키지 리포지토리 이름으로 바꿉니다.

   ```
   npm set registry=https://packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/ --location project
   npm set //packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/:_authToken=username:PAT
   ```

   **npm 6 이하의 경우:** `GET` 요청이 있을 경우에도 npm이 항상 CodeCatalyst에 인증 토큰을 전달하도록 하려면 항시 인증 구성 변수를 `npm config set`로 다음과 같이 설정합니다.

   ```
   npm set //packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/:always-auth=true --location project
   ```

## CodeCatalyst 패키지 리포지토리에서 npm 패키지 설치
<a name="npm-install"></a>

[CodeCatalyst를 사용하여 npm 구성](#npm-configure) 섹션의 단계에 따라 npm을 리포지토리에 연결한 후 리포지토리에서 `npm` 명령을 실행할 수 있습니다.

`npm install` 명령을 사용하여 CodeCatalyst 패키지 리포지토리 또는 업스트림 리포지토리 중 하나에 있는 npm 패키지를 설치할 수 있습니다.

```
npm install lodash
```

## CodeCatalyst를 통해 npmjs에서 npm 패키지 설치
<a name="npm-install-npmjs"></a>

npmjs.com, **npm-public-registry-gateway**에 연결된 게이트웨이 리포지토리에 대한 업스트림 연결로 리포지토리를 구성하여 CodeCatalyst 리포지토리를 통해 [npmjs.com](https://www.npmjs.com/)에서 npm 패키지를 설치할 수 있습니다. npmjs에서 설치된 패키지는 수집되어 게이트웨이 리포지토리와 가장 먼 다운스트림 패키지 리포지토리에 저장됩니다.

**npmjs에서 패키지를 설치하려면**

1. 아직 구성하지 않은 경우 [CodeCatalyst를 사용하여 npm 구성](#npm-configure)의 단계에 따라 CodeCatalyst 패키지 리포지토리로 `npm`을 구성합니다.

1. 리포지토리가 게이트웨이 리포지토리 **npm-public-registry-gateway**를 업스트림 연결로 추가했는지 확인합니다. [업스트림 리포지토리 추가](packages-upstream-repositories-add.md)의 지침에 따라 **npm-public-registry-gateway** 리포지토리를 선택하여, 어떤 업스트림 소스가 추가되었는지 확인하거나 **npm-public-registry-gateway**를 업스트림 소스로 추가할 수 있습니다.

1. `npm install` 명령을 사용하여 패키지를 설치합니다.

   ```
   npm install package_name
   ```

업스트림 리포지토리에서 패키지를 요청하는 방법에 대한 자세한 내용은 [업스트림 리포지토리가 포함된 패키지 버전 요청](packages-upstream-repositories-request.md) 섹션을 참조하세요.

## CodeCatalyst 패키지 리포지토리에 npm 패키지 게시
<a name="npm-publish"></a>

[CodeCatalyst를 사용하여 npm 구성](#npm-configure)를 완료한 후 `npm` 명령을 실행할 수 있습니다.

`npm publish` 명령을 사용하여 CodeCatalyst 패키지 리포지토리에 npm 패키지를 게시할 수 있습니다.

```
npm publish
```

npm 패키지를 만드는 방법에 관한 자세한 내용은 *npm Docs*에서 [Node.js 모듈 생성](https://docs.npmjs.com/getting-started/creating-node-modules) 섹션을 참조하세요.

## npm 명령 지원
<a name="npm-commands"></a>

다음 섹션에는 지원되지 않는 특정 명령 외에도 CodeCatalyst 리포지토리에서 지원하는 `npm` 명령이 요약되어 있습니다.

**Topics**
+ [리포지토리와 상호 작용하는 지원되는 명령](#supported-commands-that-interact-with-a-repository)
+ [지원되는 클라이언트 측 명령](#supported-client-side-commands)
+ [지원되지 않는 명령](#unsupported-commands)

### 리포지토리와 상호 작용하는 지원되는 명령
<a name="supported-commands-that-interact-with-a-repository"></a>

이 섹션에는 `npm` 클라이언트가 구성될 때 사용된 레지스트리(예: `npm config set registry` 포함)에 하나 이상의 요청을 보내는 `npm` 명령이 나열되어 있습니다. CodeCatalyst 패키지 리포지토리에 대해 이러한 명령을 간접적으로 호출했을 때 제대로 작동하는 것으로 확인되었습니다.


****  

| 명령 | 설명 | 
| --- | --- | 
|   [bugs](https://docs.npmjs.com/cli/bugs)   |  패키지의 버그 추적기 URL 위치를 추측한 후 URL 열기를 시도합니다.  | 
|   [ci](https://docs.npmjs.com/cli/ci)   |  프로젝트를 새로 다시 설치합니다.  | 
|   [deprecate](https://docs.npmjs.com/cli/deprecate)   |  패키지 버전을 더 이상 사용하지 않습니다.  | 
|   [dist-tag](https://docs.npmjs.com/cli/dist-tag)   |  패키지 배포 태그를 수정합니다.  | 
|   [docs](https://docs.npmjs.com/cli/docs)   |  패키지 설명서 URL의 위치를 추측한 다음 `--browser` config 파라미터를 사용하여 URL 열기를 시도합니다.  | 
|   [doctor](https://docs.npmjs.com/cli/doctor)   |  일련의 검사를 실행하여 npm 설치가 JavaScript 패키지를 관리할 수 있는지 검증합니다.  | 
|   [install](https://docs.npmjs.com/cli/install)   |  패키지를 설치합니다.  | 
|   [install-ci-test](https://docs.npmjs.com/cli/install-ci-test)   |  프로젝트를 새로 다시 설치하고 테스트를 실행합니다. 별칭: `npm cit`. 이 명령은 `npm ci`를 실행한 후 즉시 `npm test`를 실행합니다.  | 
|   [install-test](https://docs.npmjs.com/cli/install-test)   |  패키지를 설치하고 테스트를 실행합니다. `npm install`을 실행한 후 즉시 `npm test`를 실행합니다.  | 
|   [outdated](https://docs.npmjs.com/cli/outdated)   |  구성된 레지스트리를 검사하여 설치된 패키지가 만료되었는지 확인합니다.  | 
|   [ping](https://docs.npmjs.com/cli/ping)   |  구성되거나 지정된 npm 레지스트리를 ping하고 인증을 확인합니다.  | 
|   [publish](https://docs.npmjs.com/cli/publish)   |  패키지 버전을 레지스트리에 게시합니다.  | 
|   [update](https://docs.npmjs.com/cli/update)   |  패키지의 리포지토리 URL 위치를 추측한 다음, `--browser` config 파라미터를 사용하여 URL 열기를 시도합니다.  | 
|   [view](https://docs.npmjs.com/cli/view)   |  패키지 메타데이터를 표시합니다. 또한 메타데이터 속성을 인쇄하는 데 사용할 수 있습니다.  | 

### 지원되는 클라이언트 측 명령
<a name="supported-client-side-commands"></a>

이러한 명령은 리포지토리와 직접 상호 작용할 필요가 없으므로 CodeCatalyst는 명령을 지원하기 위해 아무 것도 할 필요가 없습니다.


****  

| 명령 | 설명 | 
| --- | --- | 
|   [bin(legacy)](https://docs.npmjs.com/cli/v8/commands/npm-bin)   |  npm `bin` 디렉터리를 표시합니다.  | 
|   [build](https://docs.npmjs.com/cli/v6/commands/npm-build)   |  패키지를 빌드합니다.  | 
|   [cache](https://docs.npmjs.com/cli/cache)   |  패키지 캐시를 조작합니다.  | 
|   [completion](https://docs.npmjs.com/cli/completion)   |  모든 npm 명령에서 탭 완성을 활성화합니다.  | 
|   [config](https://docs.npmjs.com/cli/config)   |  사용자 및 글로벌 `npmrc` 파일의 내용을 업데이트합니다.  | 
|   [dedupe](https://docs.npmjs.com/cli/dedupe)   |  로컬 패키지 트리를 검색하고 종속성을 트리 위로 이동하여 구조를 단순화하려고 합니다. 여기서 종속성을 여러 종속 패키지에서 더 효과적으로 공유할 수 있습니다.  | 
|   [edit](https://docs.npmjs.com/cli/edit)   |  설치된 패키지를 편집합니다. 현재 작업 디렉터리에서 종속성을 선택하고 기본 편집기에서 패키지 폴더를 엽니다.  | 
|   [explore](https://docs.npmjs.com/cli/explore)   |  설치된 패키지를 찾아봅니다. 설치된 특정 패키지의 디렉터리에 서브셸을 생성합니다. 명령이 지정되면 해당 명령은 서브셸에서 실행된 후 즉시 종료됩니다.  | 
|   [help](https://docs.npmjs.com/cli/help)   |  npm에 관한 도움말을 가져옵니다.  | 
|   [help-search](https://docs.npmjs.com/cli/help-search)   |  npm 도움말 설명서를 검색합니다.  | 
|   [init](https://docs.npmjs.com/cli/init)   |  `package.json` 파일을 생성합니다.  | 
|   [link](https://docs.npmjs.com/cli/link)   |  패키지 디렉터리에 심볼릭 링크를 생성합니다.  | 
|   [ls](https://docs.npmjs.com/cli/ls)   |  설치된 패키지를 나열합니다.  | 
|   [pack](https://docs.npmjs.com/cli/pack)   |  패키지에서 tarball을 생성합니다.  | 
|   [prefix](https://docs.npmjs.com/cli/prefix)   |  접두사를 표시합니다. `-g`도 지정되지 않는 한, 이 디렉터리는 `package.json` 파일을 포함하는 가장 가까운 상위 디렉터리입니다.  | 
|   [prune](https://docs.npmjs.com/cli/prune)   |  상위 패키지의 종속성 목록에 나열되지 않은 패키지를 제거합니다.  | 
|   [rebuild](https://docs.npmjs.com/cli/rebuild)   |  일치하는 폴더에서 `npm build` 명령을 실행합니다.  | 
|   [restart](https://docs.npmjs.com/cli/restart)   |  패키지의 중지, 재시작, 시작 스크립트와 관련 사전/사후 스크립트를 실행합니다.  | 
|   [root](https://docs.npmjs.com/cli/root)   |  유효 `node_modules` 폴더를 표준 출력으로 출력합니다.  | 
|   [run-script](https://docs.npmjs.com/cli/run-script)   |  임의의 패키지 스크립트를 실행합니다.  | 
|   [shrinkwrap](https://docs.npmjs.com/cli/shrinkwrap)   |  게시할 종속 버전을 잠급니다.  | 
|   [uninstall](https://docs.npmjs.com/cli/uninstall)   |  패키지를 제거합니다.  | 

### 지원되지 않는 명령
<a name="unsupported-commands"></a>

아래 `npm` 명령은 CodeCatalyst 패키지 리포지토리에서 지원하지 않습니다.


****  

| 명령 | 설명 | 참고 | 
| --- | --- | --- | 
|   [access](https://docs.npmjs.com/cli/access)   |  게시된 패키지에서 액세스 수준을 설정합니다.  |  CodeCatalyst는 퍼블릭 npmjs 리포지토리와는 다른 권한 모델을 사용합니다.  | 
|   [adduser](https://docs.npmjs.com/cli/adduser)   |  레지스트리 사용자 계정을 추가합니다.  |  CodeCatalyst는 퍼블릭 npmjs 리포지토리와는 다른 사용자 모델을 사용합니다.  | 
|   [audit](https://docs.npmjs.com/cli/audit)   |  보안 감사를 실행합니다.  |  CodeCatalyst는 현재 보안 취약성 데이터를 제공하지 않습니다.  | 
|   [hook](https://docs.npmjs.com/cli/v9/commands/npm-hook)   |  추가, 제거, 나열 및 업데이트를 포함하여 npm 후크를 관리합니다.  |  CodeCatalyst는 현재 어떠한 변경 알림 메커니즘도 지원하지 않습니다.  | 
|   [login](https://docs.npmjs.com/cli-commands/adduser.html)   |  사용자를 인증합니다. `npm adduser`에 대한 별칭입니다.  |  CodeCatalyst는 퍼블릭 npmjs 리포지토리와는 다른 인증 모델을 사용합니다. 자세한 내용은 [CodeCatalyst를 사용하여 npm 구성](#npm-configure) 단원을 참조하세요.  | 
|   [logout](https://docs.npmjs.com/cli/logout)   |  레지스트리에서 로그아웃합니다.  |  CodeCatalyst는 퍼블릭 npmjs 리포지토리와는 다른 인증 모델을 사용합니다. CodeCatalyst 리포지토리에서 로그아웃할 수 있는 방법은 없지만, 인증 토큰은 구성 가능한 만료 시간이 지나면 만료됩니다. 기본 토큰 지속 시간은 12시간입니다.  | 
|   [owner](https://docs.npmjs.com/cli/owner)   |  패키지 소유자를 관리합니다.  |  CodeCatalyst는 퍼블릭 npmjs 리포지토리와는 다른 권한 모델을 사용합니다.  | 
|   [profile](https://docs.npmjs.com/cli/profile)   |  레지스트리 프로파일의 설정을 변경합니다.  |  CodeCatalyst는 퍼블릭 npmjs 리포지토리와는 다른 사용자 모델을 사용합니다.  | 
|   [search](https://docs.npmjs.com/cli/search)   |  레지스트리에서 검색어와 일치하는 패키지를 검색합니다.  |  CodeCatalyst는 `search` 명령을 지원하지 않습니다.  | 
|   [star](https://docs.npmjs.com/cli/star)   |  좋아하는 패키지를 표시합니다.  |  CodeCatalyst는 현재 즐겨찾기 메커니즘을 지원하지 않습니다.  | 
|   [stars](https://docs.npmjs.com/cli/stars)   |  즐겨찾기로 표시된 패키지를 조회합니다.  |  CodeCatalyst는 현재 즐겨찾기 메커니즘을 지원하지 않습니다.  | 
|   [team](https://docs.npmjs.com/cli/team)   |  팀 및 팀 멤버십을 관리합니다.  |  CodeCatalyst는 퍼블릭 npmjs 리포지토리와는 다른 사용자 및 그룹 멤버 모델을 사용합니다.  | 
|   [token](https://docs.npmjs.com/cli/token)   |  인증 토큰을 관리합니다.  |  CodeCatalyst는 인증 토큰을 가져오기 위해 다른 모델을 사용합니다. 자세한 내용은 [CodeCatalyst를 사용하여 npm 구성](#npm-configure) 단원을 참조하세요.  | 
|   [unpublish](https://docs.npmjs.com/cli/unpublish)   |  레지스트리에서 패키지를 제거합니다.  |  CodeCatalyst는 npm 클라이언트를 사용하여 리포지토리에서 패키지 버전을 제거하는 것을 지원하지 않습니다. 콘솔을 사용하여 에서 패키지를 삭제할 수 있습니다.  | 
|   [whoami](https://docs.npmjs.com/cli/whoami)   |  npm 사용자 이름을 표시합니다.  |  CodeCatalyst는 퍼블릭 npmjs 리포지토리와는 다른 사용자 모델을 사용합니다.  | 