npmでprivateリポジトリをインストールする
npmでprivate GitHubリポジトリを依存関係としてインストールする
前提
- package.jsonファイルに依存関係が記述されていること
- リポジトリがprivateであること
- GitHubアカウントとリポジトリが存在すること
- Node.jsがインストールされていること
手順
GitHub Personal Access Token (PAT)の作成
- GitHubのアカウント設定から、"Developer settings" -> "Personal access tokens"にアクセスします。
- "Generate new token"をクリックし、必要なスコープ(例えば、"repo")を選択してトークンを作成します。
- トークンを安全な場所に保存してください。
package.jsonファイルの編集
- package.jsonファイルを開き、依存関係のリストにprivateリポジトリを追加します。
- 例えば、以下のように記述します:
{ "dependencies": { "your-private-repo": "git+ssh://[email protected]/your-username/your-private-repo.git" } }
git+ssh://[email protected]/your-username/your-private-repo.git
の部分は、リポジトリのURLに置き換えてください。
npm installコマンドの実行
- ターミナルでプロジェクトのルートディレクトリに移動します。
- 以下のコマンドを実行します:
npm install --registry=https://registry.npmjs.org/ --token=<your-pat>
<your-pat>
の部分は、作成したGitHub Personal Access Tokenに置き換えてください。
- package.jsonファイルに依存関係を記述することで、npmが自動的にインストールを行います。
- privateリポジトリのインストールには、GitHub Personal Access Tokenが必要です。
--token=<your-pat>
は、GitHub Personal Access Tokenを指定しています。--registry=https://registry.npmjs.org/
は、npmレジストリを指定しています。
npmでprivate GitHubリポジトリをインストールする際のコード例解説
package.jsonの記述例
{
"name": "my-project",
"version": "1.0.0",
"description": "",
"dependencies": {
"my-private-package": "git+ssh://[email protected]/your-username/your-private-repo.git"
}
}
- git+ssh://[email protected]/your-username/your-private-repo.git
- git+ssh
Gitリポジトリであることを示します。 - [email protected]
GitHubのGitサーバーを指します。 - your-username/your-private-repo.git
- your-username
あなたのGitHubのユーザー名です。 - your-private-repo.git
プライベートリポジトリの名前です。
- your-username
- git+ssh
- my-private-package
任意の名前です。この名前でパッケージを参照します。 - dependencies
依存関係を定義するオブジェクトです。
npm install --registry=https://registry.npmjs.org/ --token=<your-pat>
- --token=<your-pat>
GitHub Personal Access Tokenを指定します。<your-pat>
の部分には、実際に作成したトークンを貼り付けてください。
全体の流れ
- package.jsonの編集
上記の例のように、依存関係にプライベートリポジトリの情報を追加します。 - ターミナルでコマンド実行
プロジェクトのルートディレクトリで、上記のnpm installコマンドを実行します。 - インストール
npmが指定されたリポジトリからパッケージをダウンロードし、node_modulesディレクトリにインストールします。
重要なポイント
- GitHub Packages
GitHub Packagesを利用することで、より統合的なパッケージ管理が可能になります。 - .npmrcファイル
- グローバルな設定を行う場合、
~/.npmrc
ファイルに以下のように記述できます。
@your-scope:registry=https://npm.pkg.github.com //npm.pkg.github.com/:_authToken=<your-pat>
@your-scope
は、組織やスコープを指定する場合に使用します。
- グローバルな設定を行う場合、
- GitHub Personal Access Token
プライベートリポジトリにアクセスするために必要です。GitHubの設定から作成し、トークンを漏らさないように注意してください。
- npm help
npmコマンドに関するヘルプを表示できます。 - npm config list
現在のnpmの設定を確認できます。
上記の手順とコード例に従うことで、npmを使ってprivate GitHubリポジトリをプロジェクトの依存関係としてインストールすることができます。
注意
- セキュリティ上の観点から、トークンは安全に管理してください。
- プライベートリポジトリのURLやトークンは、実際の環境に合わせて置き換えてください。
より詳しい情報
GitHub Packages
- デメリット
- メリット
- GitHubのエコシステム内で完結できるため、管理が容易です。
- GitHub Actionsを利用した自動化が可能です。
- 特徴
- GitHubが提供するパッケージレジストリです。
- npmレジストリと同様に、パッケージを公開・インストールできます。
- GitHub Actionsとの連携がスムーズに行えます。
- GitHub Packagesにパッケージを公開する。
- package.jsonにGitHub Packagesのレジストリを指定する。
yarn workspaces
- デメリット
- メリット
- Monorepoプロジェクトで複数のプライベートリポジトリを管理する場合に便利です。
- ワークスペース間の依存関係を簡単に管理できます。
- 特徴
- Monorepo(複数のプロジェクトを一つのリポジトリで管理する)を効率的に管理するためのツールです。
- yarn workspacesを初期化する。
- 各ワークスペースのpackage.jsonに依存関係を記述する。
pnpm workspace
- デメリット
- メリット
- 特徴
- Hardリンクを利用することでディスク容量を節約できます。
手順
yarn workspacesと同様の手順で利用できます。
Bit
- デメリット
- メリット
- 特徴
- コンポーネントベースの開発ツールです。
- コンポーネントを独立して管理し、再利用できます。
- Bitでコンポーネントを作成する。
- プロジェクトにコンポーネントを追加する。
自前でnpmレジストリを構築
- デメリット
- メリット
- 特徴
- 自社の環境に合わせたnpmレジストリを構築できます。
- 高度なカスタマイズが可能です。
- npmレジストリサーバーをセットアップする。
- プライベートリポジトリのパッケージをレジストリに公開する。
- package.jsonにレジストリを指定する。
選択のポイント
- セキュリティ
自社内で機密性の高いパッケージを管理する場合は、自前でnpmレジストリを構築する方法が適しています。 - コンポーネントの再利用性
コンポーネントを頻繁に再利用する場合は、Bitが適しています。 - チームの開発スタイル
Monorepoを採用している場合は、yarn workspacesやpnpm workspaceが適しています。 - プロジェクトの規模
小規模なプロジェクトであればpackage.jsonに直接記述する方法でも十分な場合が多いです。
- npmレジストリの設定や、各ツールの使い方については、それぞれのドキュメントを参照してください。
- 上記以外にも、Bitbucket PipelinesやGitLab CI/CDなど、CI/CDツールを利用してプライベートリポジトリをインストールする方法もあります。
node.js github dependencies