Node.jsでプライベートGithubリポジトリをNPM依存関係として利用する方法
Node.js でプライベート Github リポジトリを NPM 依存関係として使用する
このチュートリアルでは、Node.jsプロジェクトでプライベート Github リポジトリを NPM 依存関係として使用する手順を説明します。
前提条件
- Node.js がインストールされていること
- Github アカウントを持っていること
- プライベート Github リポジトリを持っていること
手順
-
認証トークンの生成
まず、Github で個人用アクセス トークンを生成する必要があります。これは、NPM がプライベート リポジトリにアクセスするために使用するトークンです。
- Github にアクセスし、右上のプロフィール画像をクリックします。
- [設定] > [開発者設定] > [個人用アクセス トークン] に移動します。
- 新しいトークンを作成し、「repo:read-ssh」 スコープを選択します。
- [トークン生成] をクリックしてトークンを生成します。
- 生成されたトークンを安全な場所にコピーします。後で必要になります。
-
NPM レジストリのスコープを設定することで、プライベート リポジトリのパッケージを識別しやすくなります。
-
パッケージを公開
プライベート リポジトリに NPM パッケージを公開するには、次のコマンドを実行します。
npm publish --registry=https://npm.pkg.github.com/YOUR_USERNAME
-
依存関係としてインストール
別の Node.js プロジェクトで、プライベート リポジトリのパッケージを依存関係としてインストールするには、次のコマンドを実行します。
npm install @YOUR_SCOPE/YOUR_PACKAGE_NAME --registry=https://npm.pkg.github.com/YOUR_USERNAME
NPM がプライベート リポジトリにアクセスするには、認証トークンを設定する必要があります。これを行うには、次のコマンドを実行します。
npm config set //registry.npmjs.org/:_authToken YOUR_TOKEN
ここで、YOUR_TOKEN
は生成した認証トークンに置き換えます。
注意事項
- プライベート リポジトリのパッケージを公開する前に、README ファイルとライセンス ファイルが含まれていることを確認してください。
- プライベート リポジトリのパッケージにアクセスできるのは、トークンを持っているユーザーのみです。
package.json
{
"name": "my-project",
"version": "1.0.0",
"private": true,
"dependencies": {
"@my-scope/my-private-package": "1.0.0"
}
}
my-private-package/package.json
{
"name": "@my-scope/my-private-package",
"version": "1.0.0",
"main": "index.js"
}
module.exports = function () {
console.log('Hello from my-private-package!');
};
使用方法
- my-private-package リポジトリを Github に作成します。
- 上記の package.json と index.js ファイルを my-private-package リポジトリに追加します。
- 上記の手順で説明したように、認証トークンを生成し、NPM レジストリのスコープを設定します。
- 以下のコマンドを実行して、my-private-package パッケージを公開します。
npm publish --registry=https://npm.pkg.github.com/YOUR_USERNAME
- 別の Node.js プロジェクトで、以下のコマンドを実行して、my-private-package パッケージを依存関係としてインストールします。
npm install @my-scope/my-private-package --registry=https://npm.pkg.github.com/YOUR_USERNAME
const myPrivatePackage = require('@my-scope/my-private-package');
myPrivatePackage(); // Hello from my-private-package!
この例は、基本的な使用方法を示しています。実際の使用例では、独自のニーズに合わせてコードを調整する必要があります。
- この例では、my-scope というスコープを使用しています。使用するスコープは任意に変更できます。
Node.js でプライベート Github リポジトリを NPM 依存関係として使用するその他の方法
しかし、状況によっては、以下の代替方法を使用することもできます。
Git URL を使用する
NPM レジストリにパッケージを公開する代わりに、Git URL を使用して依存関係を指定することができます。
{
"name": "my-project",
"version": "1.0.0",
"private": true,
"dependencies": {
"@my-scope/my-private-package": "git://github.com/YOUR_USERNAME/my-private-package.git"
}
}
この方法を使用するには、my-private-package リポジトリを public に設定する必要があります。
SSH を使用して、プライベート リポジトリに直接アクセスすることもできます。
{
"name": "my-project",
"version": "1.0.0",
"private": true,
"dependencies": {
"@my-scope/my-private-package": "ssh://[email protected]:YOUR_USERNAME/my-private-package.git"
}
}
この方法を使用するには、NPM クライアントが SSH 認証をサポートしていることを確認する必要があります。
Yarn を使用する
Yarn は、NPM の代替となるパッケージ マネージャーです。 Yarn は、プライベート リポジトリのパッケージをより簡単にインストールできる機能をいくつか提供しています。
詳細については、Yarn のドキュメントを参照してください: https://classic.yarnpkg.com/lang/en/docs/cli/install/
Lerna は、複数の Node.js パッケージを管理するためのツールです。 Lerna を使用すると、プライベート リポジトリ内のすべてのパッケージを一度にインストールすることができます。
詳細については、Lerna のドキュメントを参照してください: https://lerna.js.org/
最適な方法の選択
使用する方法は、プロジェクトのニーズと要件によって異なります。
- 公開 リポジトリを使用する場合は、NPM レジストリにパッケージを公開するのが最も簡単な方法です。
- プライベート リポジトリを使用する場合は、Git URL または SSH を使用する必要があります。
- 複数の パッケージを管理する場合は、Lerna を使用することがあります。
- Yarn を既に使用している場合は、Yarn の機能を利用することができます。
どの方法を選択する場合でも、セキュリティを考慮することが重要です。 プライベート リポジトリにアクセスできるのは、許可されたユーザーのみであることを確認してください。
node.js git github