Node.js開発のベストプラクティス!npmrcファイルで複数レジストリを安全に運用
Node.jsとnpmにおける複数のレジストリの構成方法
本記事では、単一のnpmrcファイルで複数のレジストリを構成する方法について、分かりやすく解説します。
複数のレジストリを使用する利点
複数のレジストリを使用する利点は以下の通りです。
- プライベートパッケージの利用: 社内利用限定のパッケージなど、公開されていないパッケージを管理できます。
- ミラーレジストリの利用: 地域やネットワーク環境によって、公式レジストリよりも高速なアクセスを提供できます。
- 特定のバージョンへの依存: 特定のバージョンのパッケージに依存する場合、バージョン管理が容易になります。
npmrcファイル
npmrcファイルは、npmの設定を記述するファイルです。デフォルトでは、ユーザーホームディレクトリに~/.npmrc
という名前で作成されます。
以下の手順で、npmrcファイルに複数のレジストリを構成できます。
-
npmrcファイルを開く
ターミナルで以下のコマンドを実行して、npmrcファイルを開きます。
vim ~/.npmrc
-
レジストリ情報を入力する
以下の形式で、レジストリ情報を入力します。
registry=<レジストリ名>=<URL>
例:
registry=npmjs=https://registry.npmjs.org/ registry=internal=https://internal-registry.example.com/
-
保存して終了する
ファイルを保存して終了します。
複数のレジストリを使い分ける方法
レジストリを切り替えて使用する方法は以下の通りです。
-
環境変数を使う
NODE_REGISTRY
環境変数にレジストリのURLを設定することで、そのレジストリをデフォルトとして使用できます。NODE_REGISTRY=https://internal-registry.example.com/ npm install package-name
-
npmrcファイルのエイリアスを使う
npmrcファイルでエイリアスを設定することで、レジストリを切り替えやすくなります。
registry=internal=https://internal-registry.example.com/ alias internal=registry=internal
上記の例では、
npm install --registry internal package-name
コマンドを実行することで、internal
レジストリからpackage-name
パッケージをインストールできます。
本記事では、Node.jsとnpmにおける複数のレジストリの構成方法について解説しました。
registry=npmjs=https://registry.npmjs.org/
registry=internal=https://internal-registry.example.com/
alias internal=registry=internal
コマンド例
# npmjs.orgからパッケージをインストール
npm install package-name
# internalレジストリからパッケージをインストール
npm install --registry internal package-name
# internalエイリアスを使ってパッケージをインストール
npm install --registry internal package-name
上記のコマンドを実行すると、以下のようになります。
npm install package-name
:npmjs.orgからpackage-name
パッケージをインストールします。
複数のレジストリを構成する他の方法
プロジェクトディレクトリに.npmrc
ファイルを作成することで、そのプロジェクト内でのみレジストリ設定を変更できます。
registry=internal=https://internal-registry.example.com/
この設定により、プロジェクト内のnpm install
コマンドは、デフォルトでinternal
レジストリを使用します。
npmコマンドオプションを使う
npm install
コマンドに--registry
オプションを指定することで、一時的にレジストリを切り替えることができます。
npm install --registry https://internal-registry.example.com/ package-name
このコマンドは、package-name
パッケージをinternal
レジストリからインストールします。
npmrc-cliツールを使う
npmrc-cli
ツールを使うと、コマンドラインからレジストリ設定を簡単に管理できます。
npmrc set registry internal https://internal-registry.example.com/
npm install package-name
上記の例では、npmrc set registry internal https://internal-registry.example.com/
コマンドでinternal
レジストリを設定し、npm install package-name
コマンドでそのレジストリからpackage-name
パッケージをインストールします。
Yarnを使う
Yarnは、npmと互換性のあるパッケージマネージャーです。Yarnはデフォルトで複数のレジストリをサポートしており、設定も比較的簡単です。
yarn add package-name --registry https://internal-registry.example.com/
上記の方法はそれぞれメリットとデメリットがあります。
node.js npm