

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# npmを使う
<a name="packages-npm"></a>

以下のトピックでは、Node.js パッケージマネージャー `npm` をCodeCatalyst で使用する方法を説明します。

**注記**  
CodeCatalyst は、`node v4.9.1` 以降および `npm v5.0.0` 以降をサポートしています。

**Topics**
+ [npm を設定して使用する](packages-npm-use.md)
+ [npm タグ処理](packages-npm-tags.md)

# npm を設定して使用する
<a name="packages-npm-use"></a>

CodeCatalyst で `npm` を使用するには、`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>

次の手順では、`npm` を認証して CodeCatalyst パッケージリポジトリに接続する方法を説明します。npm の詳細については、[npm の公式ドキュメント](https://docs.npmjs.com/)を参照してください。

**`npm` を CodeCatalyst パッケージリポジトリに接続するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトに移動します。

1. ナビゲーションペインで、[**Packages (パッケージ)**] を選択します。

1. リストからパッケージリポジトリの名前を選択します。

1. **[リポジトリに接続]** を選択します。

1. **[設定の詳細]** で、**[パッケージマネージャークライアント]** で **[npm クライアント]** を選択します。

1. オペレーティングシステムを選択すると、対応する設定手順が表示されます。

1. CodeCatalyst で npm を認証するには、個人用アクセストークン (PAT) が必要です。既にトークンある場合はそれを使用できます。ない場合は、次の手順で作成できます。

   1. **(オプション):** **[PAT 名]** と **[有効期限]** を更新します。

   1. **[トークンを作成]** をクリックします。

   1. PAT をコピーして安全な場所に保存します。
**警告**  
ダイアログボックスを閉じると、PAT を再度表示またはコピーできなくなります。攻撃者が不正に入手した認証情報を使用できる期間を最小限に抑えるため、認証情報の有効期間は短く設定してください。

1. プロジェクトのルートディレクトリから次のコマンドを実行して、パッケージリポジトリで npm を設定します。このコマンドは、次の操作を行います。
   + プロジェクトにプロジェクトレベルの `.npmrc` ファイルがない場合は、作成します。
   + パッケージリポジトリのエンドポイント情報をプロジェクトレベルの `.npmrc` ファイルに追加します。
   + 認証情報 (PAT) をユーザーレベルの `.npmrc` ファイルに追加します。

   次の値を置き換えます。
**注記**  
コンソールの手順からコピーする場合は、以下のコマンドの値は自動的に更新されるため、変更する必要はありません。
   + *username* を CodeCatalyst のユーザー名に置き換えます。
   + *PAT* を CodeCatalyst の PAT に置き換えます。
   + *space\$1name* を CodeCatalyst のスペース名に置き換えます。
   + *proj\$1name* を CodeCatalyst のプロジェクト名に置き換えます。
   + *repo\$1name* を 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 に渡すようにするには、次のように、always-auth 設定変数を `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>

CodeCatalyst リポジトリを介して [npmjs.com](https://www.npmjs.com/) から npm パッケージをインストールするには、**npm-public-registry-gateway** に接続されたゲートウェイリポジトリへのアップストリーム接続を使用してリポジトリを設定します。npmjs からインストールされたパッケージは、ゲートウェイリポジトリと最も遠いダウンストリームパッケージリポジトリに取り込まれて保存されます。

**npmjs からパッケージをインストールするには**

1. まだ設定していない場合は、「[CodeCatalyst で npm を設定する](#npm-configure)」の手順に従って `npm` を CodeCatalyst パッケージリポジトリで設定します。

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 パッケージを CodeCatalyst パッケージリポジトリに公開するには、`npm publish` コマンドを使用します。

```
npm publish
```

npm パッケージを作成する方法については、*npm Docs* 上の「[Creating Node.js Modules](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` など) に 1 つまたは複数のリクエストを行うコマンドをまとめています。以下のコマンドは、CodeCatalyst パッケージリポジトリに対して呼び出されたときに正しく機能することが確認されています。


****  

| コマンド | 説明 | 
| --- | --- | 
|   [bugs](https://docs.npmjs.com/cli/bugs) (バグ)   |  パッケージのバグトラッカー 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 パラメータを使用して開こうとします。  | 
|   [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 パラメータを使用して開こうとします。  | 
|   [view](https://docs.npmjs.com/cli/view) (表示)   |  パッケージメタデータの表示 メタデータプロパティの出力にも使用できます。  | 

### サポートされているクライアント側コマンド
<a name="supported-client-side-commands"></a>

以下のコマンドはパッケージリポジトリとの直接的なやりとりを必要としないため、CodeCatalyst はそのサポートのために何もする必要はありません。


****  

| コマンド | 説明 | 
| --- | --- | 
|   [bin (レガシー)](https://docs.npmjs.com/cli/v8/commands/npm-bin)   |  npm `bin` ディレクトリを表示します。  | 
|   [buid](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` ファイルのコンテンツを更新します。  | 
|   [depute](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)」を参照してください。  | 
|   [unpublished](https://docs.npmjs.com/cli/unpublish)   |  レジストリからパッケージを削除します。  |  CodeCatalyst では、npm クライアントをリポジトリからパッケージのバージョンを削除できません。パッケージはコンソールで削除できます。  | 
|   [whoami](https://docs.npmjs.com/cli/whoami) (私は誰)   |  npm ユーザー名を表示します。  |  CodeCatalyst は、パブリック npmjs リポジトリとは異なるユーザーモデルを使用します。  | 

# npm タグ処理
<a name="packages-npm-tags"></a>

npm レジストリは *タグ* をサポートしており、これはパッケージバージョンの文字列エイリアスです。バージョン番号の代わりにタグを使用して、エイリアスを指定できます。例えば、複数の開発ストリームを持つプロジェクトがあり、ストリームごとに異なるタグ (`stable`、`beta`、`dev`、`canary` など) を使用する場合があります。詳細については、*npm Docs* 上の「[dist-tag](https://docs.npmjs.com/cli/dist-tag)」を参照してください。

デフォルトでは、npm は `latest` タグを使用して、パッケージの現在のバージョンを識別します。`npm install pkg` (`@version` または `@tag` 指定子なし) は latest タグをインストールします。プロジェクトでは通常、安定版リリースバージョンに対してのみ、latest タグが使用されます。他のタグは、不安定版またはプレリリースバージョンに使用されます。

## npm クライアントでタグを編集する
<a name="editing-tags-with-the-npm-client"></a>

 3 つの `npm dist-tag` コマンド (`add`、`rm`、`ls`) は、CodeCatalyst パッケージリポジトリで[デフォルトの npm レジストリ](https://registry.npmjs.com/)内と同様に機能します。

## npm タグと上流リポジトリ
<a name="packages-tags-and-upstreams"></a>

`npm` がパッケージのタグを要求し、そのパッケージのバージョンがアップストリームリポジトリにも存在する場合、CodeCatalyst はタグをマージしてからクライアントに返します。例えば、`R` という名前のリポジトリには、`U` という名前のアップストリームリポジトリがあります。次の表は、両方のリポジトリに存在する `web-helper` という名前のパッケージのタグを示しています。


****  

| Repository | パッケージ名 | パッケージタグ | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *latest* (バージョン 1.0.0 のエイリアス)  | 
|  U  |  `web-helper`  |   *alpha* (バージョン 1.0.1 のエイリアス)  | 

この場合、npm クライアントがリポジトリ `R` の `web-helper` パッケージのタグを取得すると、*latest* と *alpha* 両方のタグが返されます。タグが指すバージョンは変更されません。

アップストリームリポジトリとローカルリポジトリの両方で同じタグが同じパッケージに存在する場合、*最後に更新された*タグが使用されます。例えば、*ウェブヘルパー* 上のタグが次のように変更したとします。


****  

| Repository | パッケージ名 | パッケージタグ | 最終更新日 | 
| --- | --- | --- | --- | 
|  R  |  `web-helper`  |   *latest* (バージョン 1.0.0 のエイリアス)  |  2023 年 1 月 1 日  | 
|  U  |  `web-helper`  |   *latest* (バージョン 1.0.1 のエイリアス)  |  2023 年 6 月 1 日  | 

この場合、npm クライアントがリポジトリ `R` からパッケージ *web-helper* のタグを取得すると、*latest* タグによってバージョン *1.0.1* に別名が付けられます。これが最後に更新されているためです。これにより、アップストリームリポジトリにあり、ローカルリポジトリにまだ存在していない新しいパッケージバージョンを、`npm update` を実行して簡単に使用できるようになります。