Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

非公開パッケージをインストールする

最終更新 Markdown で表示Agent セットアップ

Cloudflare Pages はカスタムパッケージレジストリに対応しており、アプリケーションに非公開の依存関係を含められます。この手順は Node のパッケージマネージャー兼レジストリである npm を対象にしますが、同じ方法は他のレジストリツールにも適用できます。

Pages プロジェクトの Settings環境変数 を調整します。既存のサイトはいつでも変更できます。新しいプロジェクトでも、これらの設定を最初から指定できます。いずれの場合も、プロジェクト設定の変更は次のデプロイまで反映されません。

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

どのパッケージレジストリにも、新しいアクセストークンを発行する手段があります。他の CI/CD プラットフォームと同様に、Pages 専用のトークンを新しく作成することをおすすめします。

npm では、Web サイトでトークンを作成・確認 するか、npm CLI を使えます。CLI をローカルにセットアップして認証済みであれば、ターミナルで次のコマンドを実行します。

# Verify the current npm user is correct
npm whoami

# Create a readonly token
npm token create --read-only
#-> Enter password, if prompted
#-> Enter 2FA code, if configured

UUID 文字列のような読み取り専用トークンが生成されます。この値は後の手順で使うので保存してください。

npm レジストリ上の非公開モジュール

このセクションは、npm レジストリの非公開モジュールだけを使っているアプリケーション向けです。

Pages プロジェクトの Settings > Environment variables で、ProductionPreview の各環境に NPM_TOKEN という 環境変数 を追加し、作成した読み取り専用トークン を値として貼り付けます。

デフォルトでは、npmNPM_TOKEN という環境変数を探します。カスタムレジストリエンドポイント を定義していないため、npm レジストリが使われます。自分とチームメイトが、非公開パッケージへのアクセス権がある npm アカウントで認証されていれば(npm whoaminpm 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_GITHUBpersonal access token を設定します。

複数環境の管理

新しい .npmrc ファイルでローカル開発が動かなくなった場合は、次の追加変更が必要です。

  1. Pages 向けの .npmrc ファイルを .npmrc.pages にリネームします。このファイルは環境変数を参照している必要があります。

  2. 以前の .npmrc ファイル(自分とチームメイトが使えていたバージョン)を復元します。

  3. Cloudflare ダッシュボードで Workers & Pages を開きます。

    Workers & Pages を開く ↗
  4. Pages プロジェクトを選択します。

  5. Settings > Environment variables を開き、NPM_CONFIG_USERCONFIG という 環境変数 を追加して、値を /opt/buildhome/repo/.npmrc.pages に設定します。.npmrc.pages がプロジェクトのルートディレクトリにない場合は、パスを合わせて調整してください。

役に立ちましたか?