コンテンツにスキップ

プライベートパッケージのインストール

Cloudflare Pagesはカスタムパッケージレジストリをサポートしており、アプリケーションにプライベート依存関係を含めることができます。この手順は特に npmに焦点を当てていますが、Nodeパッケージマネージャーおよびレジストリに対して、同様のアプローチを他のレジストリツールにも適用できます。

あなたは、Pagesプロジェクトの設定環境変数を調整します。既存のウェブサイトはいつでも変更できますが、新しいプロジェクトもこれらの設定で初期化できます。いずれにせよ、プロジェクト設定を変更しても、次回のデプロイメントまで反映されません。

レジストリアクセストークン

すべてのパッケージレジストリは、新しいアクセストークンを発行する手段を持っている必要があります。理想的には、他のCI/CDプラットフォームと同様に、Pages専用の新しいトークンを作成するべきです。

npmを使用している場合、ウェブサイトを通じてトークンを作成および表示できますが、npm CLIを使用することもできます。CLIがローカルに設定されており、認証されている場合は、ターミナルで以下のコマンドを実行します:

Terminal window
# 現在のnpmユーザーが正しいか確認
npm whoami
# 読み取り専用トークンを作成
npm token create --read-only
#-> プロンプトが表示されたらパスワードを入力
#-> 設定されている場合は2FAコードを入力

これにより、UUID文字列のような読み取り専用トークンが生成されます。この値は後のステップのために保存してください。

npmレジストリのプライベートモジュール

次のセクションは、npmレジストリからプライベートモジュールのみを使用しているアプリケーションのユーザーに適用されます。

Pagesプロジェクトの設定 > 環境変数で、NPM_TOKENという名前の新しい環境変数ProductionおよびPreview環境に追加し、作成した読み取り専用トークンをその値として貼り付けます。

デフォルトでは、npmNPM_TOKENという名前の環境変数を探し、カスタムレジストリエンドポイントを定義していないため、npmレジストリが想定されます。ローカル開発は、あなたとチームメンバーがプライベートパッケージへのアクセス権を持つnpmアカウント(npm whoamiおよびnpm loginを参照)で認証されている限り、期待通りに動作し続けるはずです。

カスタムレジストリエンドポイント

複数のレジストリが使用されている場合、プロジェクトは独自のルートレベル.npmrc構成ファイルを定義する必要があります。例として、.npmrcファイルは次のようになります:

@foobar:registry=https://npm.pkg.github.com
//registry.npmjs.org/:_authToken=${TOKEN_FOR_NPM}
//npm.pkg.github.com/:_authToken=${TOKEN_FOR_GITHUB}

ここでは、@foobarスコープのすべてのパッケージがGitHub Packagesレジストリに向けられています。次に、レジストリはそれぞれの環境変数名を介して独自のアクセストークンが割り当てられます。

次に、Pagesプロジェクトはすべての環境に対して一致する環境変数を定義する必要があります。私たちの例では、TOKEN_FOR_NPM読み取り専用npmトークンの値を含む必要があり、TOKEN_FOR_GITHUBは独自のパーソナルアクセストークンを含む必要があります。

複数の環境の管理

ローカル開発が新しい.npmrcファイルで動作しなくなった場合、いくつかの追加変更を加える必要があります:

  1. Pagesに準拠した.npmrcファイルの名前を.npmrc.pagesに変更します。これは環境変数を参照する必要があります。

  2. 以前の.npmrcファイルを復元します – あなたとチームメンバーにとって以前に機能していたバージョンです。

  3. Pagesプロジェクト > 設定 > 環境変数に移動し、NPM_CONFIG_USERCONFIGという名前の新しい環境変数を追加し、その値を/opt/buildhome/repo/.npmrc.pagesに設定します。.npmrc.pagesファイルがプロジェクトのルートディレクトリにない場合は、このパスを適宜調整してください。