ホームページ > ウェブフロントエンド > jsチュートリアル > VerdaccioでプライベートNPMパッケージをホスト、公開、管理します

VerdaccioでプライベートNPMパッケージをホスト、公開、管理します

Jennifer Aniston
リリース: 2025-02-17 09:39:15
オリジナル
756 人が閲覧しました

verdaccio:プライベートNPMパッケージを簡単に管理するための強力なツール

Host, Publish and Manage Private npm Packages with Verdaccio

コアポイント

  • Verdaccioは、NPMの商用プライベートパッケージのホスティング、出版、管理サービスの無料の代替品です。構成なしでローカルNPMレジストリを作成することができ、独自のデータベースが付属しています。
  • Verdaccioはローカルキャッシュ/プロキシサーバーとして機能し、カスタムリポジトリに依存関係が見つからない場合、公式のNPMレジストリからダウンロードされ、ローカルストレージフォルダーに保存されます。また、地元のプライベートパッケージの作成もサポートしています。
  • Verdaccioは簡単にインストールして構成でき、時折クラッシュで自動的に再起動するように設定できます。また、ユーザーはパッケージの公開に登録できます。
  • プライベートパッケージのホストに加えて、Verdaccioはパブリックパッケージもキャッシュします。ストレージフォルダーに要求されたパッケージがあるかどうか、およびそれが見つからない場合は、リクエストを公式NPMレジストリに転送して、リクエストをダウンロード、保存、返信します。これは、たとえ公式のレジストリがダウンしても、キャッシュバージョンにまだアクセスできることを意味します。

この記事は、panayiotis«pvgr»velisarakosとJurgen van de Moereによってレビューされました。 SitePointコンテンツを完璧にしてくれたすべてのSitePointピアレビュアーに感謝します!

Host, Publish and Manage Private npm Packages with Verdaccio

私たち全員が知っているように、NPMとそのレジストリは、事実上のJavaScriptパッケージマネージャーであり、世界最大のコードコレクションです。しかし、驚くべき新しいパッケージを開発するときは、追加のプライバシーが必要です。それが会社プロジェクト(公に共有されるべきではない)、マスター/学士号の論文プロジェクトであるかどうか、またはあなたが私のように、新しいトピックでの最初の試みを恥ずかしく思うからです。

何らかの理由で、多くの選択肢があります。おそらく最も簡単な方法は、NPMのビジネスサービスを登録してから開始することです。しかし、これには料金が必要であり、全員の財布には適していない場合があります。

幸いなことに、あなたを助けることができるVerdaccioと呼ばれる無料の代替品があります。

Verdaccioの紹介

Verdaccioは、構成なしでローカルNPMレジストリを作成できるNPMパッケージです。これは、独自のデータベースを備えたすべての必要な機能を備えたプロジェクトです。これは、ローカルキャッシュ/プロキシサーバーとして機能することで行います。

これは、カスタムリポジトリから存在しないものをインストールしようとするときはいつでも、公式のNPMレジストリをpingし、依存関係をダウンロードすることを意味します。カスタムリポジトリは、これらの依存関係をストレージと呼ばれる簡単なフォルダーに保存します。次のインストールでは、このローカルキャッシュのコピーを使用します。最も重要なことは、NPM Login/Adduser/PublishなどのNPMクライアントからのいくつかのコマンドがコピーされ、この記事の後半で表示されるローカルプライベートパッケージの作成をサポートすることです。

これが新しいものではないと思うなら、すでにシノピアがあります、あなたは正しいです。 Verdaccioは、後方互換性を維持するシノピアのフォークにすぎませんが、同時に公式NPMの変更に追いつこうとします。 Sinopiaで利用できないこのような変更の1つは、Scopeパッケージです。これは、Angular 2やTypescript NPMホスティングタイプなどのライブラリを使用する前に見たことがあります。前のシンボルの @記号で簡単に識別できます:

<code># 安装 Angular2 依赖项
npm install @angular/core

# 安装 TypeScript 的官方 Node.js 类型定义
npm install @types/node</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

SinopiaとVerdaccioはどちらもMac/LinuxとWindowsで利用できます。

Verdaccioの初心者

VerdaccioはNPMパッケージであるため、次のコマンドを実行するだけでインストールできます。

その後、Verdaccioを呼び出してインスタンスを開始し、プライベートレジストリを実行します。

<code>npm install -g verdaccio</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
デフォルトでは、ポート4873で聴きます。これらの設定を後で変更する方法について説明します。

この記事では、開発マシンにレジストリのセットアップを紹介します。企業環境では、すべての開発者がアクセスできるように、専用サーバーでこれを行う必要がある場合があります。

Verdaccioはnode.jsアプリケーションです。つまり、クラッシュするたびに再起動するように注意する必要があります。 PM2を使用することをお勧めします。次の手順を実行する必要があります:

さらに、この記事を読んだ後、Verdaccioがあなたに適していないと結論付けた場合、プロセスを停止し、次のコマンドでVerdaccioをアンインストールしました。

クライアントを構成

<code># 安装 pm2
npm install pm2 -g

# 使用 pm2 启动 Verdaccio
pm2 start PATH-TO-GLOBAL-VERDACCIO/verdaccio
# --> 例如,对于 Windows:C:/Users/[USERNAME]/AppData/Roaming/npm/node_modules/verdaccio/bin/verdaccio</code>
ログイン後にコピー
ログイン後にコピー
レジストリが稼働している場合、NPMクライアントに新しいアドレスを指す必要があります。これは、次のコマンドを実行することで実行できます。

この記事の手順に従って元のNPMレジストリに復元したい場合は、後で元のNPMレジストリに復元したい場合は、このコマンドNPMセットレジストリ
<code>npm uninstall -g verdaccio</code>
ログイン後にコピー
ログイン後にコピー
https://www.php.cn/link/c0ab5525d634e80fd8e20e3d6dc00b11c

( httpsベースのアクセスの場合)またはnpmセットレジストリ

https://www.php.cn/link/6baadc89159617043965f9e18889224e7(クラシックなhttpアクセスの場合)。

<code>npm set registry https://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d/</code>
ログイン後にコピー
さらに、HTTPSを介してレジストリサービスを提供する場合は、適切なCA情報を設定する必要があります。

アドレスにナビゲートすることにより、レジストリブラウザにアクセスできるようになりましたhttps://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d

カスタムレジストリを構成

<code># 将值设置为 null 将使用操作系统提供的列表
npm set ca null</code>
ログイン後にコピー
サーバーが起動すると、config.yamlという名前の新しい構成ファイルが自動的に作成されます。デフォルトでは、ユーザーフォルダーに作成されます。 Windowsでは、これは次のようになるかもしれません:

重要な設定は、Verdaccioリスニング用のデフォルトポートを構成することです。構成ファイルの最後に次の行を追加することにより、この設定を変更できます。

<code># 安装 Angular2 依赖项
npm install @angular/core

# 安装 TypeScript 的官方 Node.js 类型定义
npm install @types/node</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

関心のあるもう1つの設定は、特に企業環境でのプロキシの使用です。これらの設定は次のとおりです

<code>npm install -g verdaccio</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
構成を変更した後、現在のプロセスを殺すか、PM2プロセスを停止して再起動してVerdaccioを再起動してください。

登録済みユーザー

最後になりましたが、レジストリにパッケージを公開するユーザーを構成する必要があります。これは、カスタムレジストリを指すデフォルトのAdduserコマンドを使用して行うことができます。

その後、コマンドラインのプロンプトに従ってください。
<code># 安装 pm2
npm install pm2 -g

# 使用 pm2 启动 Verdaccio
pm2 start PATH-TO-GLOBAL-VERDACCIO/verdaccio
# --> 例如,对于 Windows:C:/Users/[USERNAME]/AppData/Roaming/npm/node_modules/verdaccio/bin/verdaccio</code>
ログイン後にコピー
ログイン後にコピー

以前に構成したのと同じポートを使用することを忘れないでください。

このユーザーは、Verdaccioインスタンスに対する認証に使用されます。上記のconfig.yamlファイルに加えて、ログイン名と資格情報を保存するための新しく作成されたHTPASSWDファイルもあります。

最初のプライベートNPMパッケージ

今、最初のプライベートパッケージを作成する準備ができました。シンプルなハローワールドパッケージを作成し、公開するプロセスを確認します。

パッケージを作成

最初に、Hellowld Chhelleと呼ばれる新しいフォルダーを作成します。これで、新しいパッケージを起動する必要があり、コマンドNPM Initを使用してこれを行います。たくさんの質問が行われますが、今ではほとんどの質問がデフォルト値を受け入れています。説明をして、index.jsのエントリポイントを維持し、著者として名前を追加してください。結果は、パッケージを説明するpackage.jsonと呼ばれるファイルができました。

良い練習は、パッケージ名をプレフィックスにすることで、プライベートローカルソースまたは公式のNPMソースを使用しているかどうかをすぐに見分けることができます。

次の部分は、実際のパッケージを作成することです。したがって、index.jsファイルを作成します。この簡単な例では、Helloworld関数のみをエクスポートします:

パッケージをリリース
<code>npm uninstall -g verdaccio</code>
ログイン後にコピー
ログイン後にコピー

残りはパッケージをリリースすることです。これを行うには、まずNPMログインを使用してレジストリにログインする必要があります。以前に設定したユーザー名とパスワードを入力するように求められます。

この操作を完了したら、holl-worldのルートディレクトリでNPMパブリッシュを実行して操作を完了します。

ブラウザのレジストリブラウザに再びアクセスすると、

https://www.php.cn/link/0f3ea482c9513bf4548f302a46d9932d/にあります。リストには新しいパッケージが含まれていることがわかります。

サンプルユーザーアプリケーション

Host, Publish and Manage Private npm Packages with Verdaccio プライベートパッケージを公開したので、それを使用する簡単なデモアプリケーションを作成しましょう。

新しいフォルダーデモでは、NPM initを再度使用して新しいノードアプリケーションを作成します。繰り返しますが、すべての提案を受け入れ、説明と著者情報のみを追加してください。

の後、アプリケーションのルートディレクトリとして機能するindex.jsファイルを作成します。

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

プライベートパッケージをインストールするには、基本的に標準のNPMプロセスと同じことをする必要があります。

<code># 安装 Angular2 依赖项
npm install @angular/core

# 安装 TypeScript 的官方 Node.js 类型定义
npm install @types/node</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
これにより、node_modulesフォルダーにパッケージをインストールし、package.jsonの依存関係セクションを更新します。

これで、パッケージを使用できます。 index.jsを開いて、次のコードを追加します:

<code>npm install -g verdaccio</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ここで、node index.jsを使用してアプリケーションを実行すると、コマンドラインの出力としてHello Worldが表示されるはずです。

おめでとうございます、あなたはちょうどあなた自身のプライベートパッケージを使用して使用しました!

パブリックパッケージをリクエストします

パブリックパッケージにも同じことが言えます。 NPMインストールパッケージ名を実行し続けるだけで、すべてが通常どおりNode_Modulesフォルダーにインストールされます。

Verdaccioが舞台裏で行うのは、ストレージフォルダーを確認し、要求されたパッケージが存在するかどうかを確認することです。存在しない場合は、リクエストを公式NPMレジストリに転送し、ダウンロードして保存してから、リクエストに返信しようとします。次回、同じパッケージのNPMインストールリクエストを作成すると、パッケージが提供されます。

したがって、公式のレジストリがダウンしたり、何らかの理由でアクセスできない場合でも、独自のキャッシュバージョンにアクセスできます。 Verdaccioは常に要求されたコンテンツのみをダウンロードします。いくつかの更新を投稿すると、必要に応じてダウンロードします。

レジストリブラウザはパブリックパッケージを表示しないでください。それらを表示する必要がある場合は、.sinopia-db.jsonファイルを編集し、リスト配列にパッケージ名を手動で追加できます。その後、Verdaccioを再起動することを忘れないでください。

結論

したがって、独自のプライベートレジストリをホストし、キャッシュされたパブリックパッケージの恩恵を受けることができます。最も重要なことは、クラウドと通信せずにプライベートパッケージを公開できるようになりました。インストールが完了した後、関連するすべてのNPMクライアントコマンドは通常と同じです。

パッケージの一部が損傷または破損しているクレイジーな状況では、パッケージをホストするフォルダーストアであることを忘れないでください。そこでナビゲートして故障したパッケージを削除してください。次のインストールでは、問題が解決する場合があります。

この投稿を楽しんでいただければ幸いです。コメントでお聞きをお待ちしております。

VerdaccioのプライベートNPMパッケージの使用に関する

FAQ(FAQ)

Verdaccioとは何ですか?なぜプライベートNPMパッケージに使用する必要があるのですか?

Verdaccioは、独自のNPMパッケージを個人的にホストできるオープンソース、軽量で強力なプライベートNPMレジストリです。これは、コードと依存関係を制御したい開発者にとって素晴らしいツールです。 Verdaccioは、NPMパッケージを管理する安全で効率的な方法を提供し、プライマリNPMレジストリがダウンしたときにパッケージをキャッシュし、アクセスを制御し、さらにはバックアップオプションとして使用できます。

私のシステムにVerdaccioをインストールする方法は?

Verdaccioのインストールは非常に簡単です。システムにnode.jsとnpmをインストールする必要があります。インストールが完了したら、NPMインストールコマンドを使用してVerdaccio:NPMインストール-G Verdaccioをインストールできます。これにより、システムにVerdaccioがグローバルにインストールされます。

verdaccioを使用してプライベートNPMパッケージを公開する方法は?

Verdaccioをインストールした後、NPMログインコマンドを使用してVerdaccioレジストリに最初にログインすることにより、プライベートNPMパッケージを公開できます。ユーザー名、パスワード、電子メールの入力が求められます。ログインしたら、パッケージディレクトリに移動し、NPMパブリッシュコマンドを使用してパッケージを公開します。

VerdaccioのプライベートNPMパッケージへのアクセスを制御するにはどうすればよいですか?

Verdaccioを使用すると、構成ファイルconfig.yamlを介してプライベートNPMパッケージへのアクセスを制御できます。誰がアクセス、公開、未発表のパッケージができるかを指定できます。また、ユーザーグループを作成して、アクセス許可を割り当てることもできます。

verdaccioをパブリックNPMパッケージのキャッシュとして使用できますか?

はい、VerdaccioはパブリックNPMパッケージのプロキシおよびキャッシュとして機能します。つまり、パッケージをインストールすると、Verdaccioが最初に保管型で使用できるかどうかを確認します。利用できない場合は、Public NPMレジストリから取得し、将来の使用のためにキャッシュします。

Verdaccioをフォールバックオプションとして使用するように構成する方法は?

.NPMRCファイルの主要なレジストリとして設定することにより、Verdaccioをフォールバックオプションとして機能させることができます。このようにして、メインのNPMレジストリがダウンするたびに、NPMはVerdaccioを自動的に使用します。

Verdaccioを他のツールと統合できますか?

はい、Verdaccioは、Docker、Kubernetes、Gitlabなどのさまざまなツールと統合できます。これにより、さまざまな開発ワークフローに適応できる普遍的なツールになります。

私のパッケージをVerdaccioに移行する方法は?

パッケージをVerdaccioに移行することは、Verdaccioレジストリに公開するのと同じくらい簡単です。これを行うには、Verdaccioレジストリにログインし、NPM Publishコマンドを使用することができます。

チーム環境でVerdaccioを使用できますか?

もちろん

。 Verdaccioは、チーム環境で機能するように設計されています。誰がどのパッケージにアクセスできるかを制御でき、コラボレーションのための優れたツールになります。

verdaccioに貢献する方法は?

Verdaccioはオープンソースプロジェクトであり、いつでも貢献しています。エラーを報告したり、機能を提案したり、ドキュメントを改善したり、プルリクエストを送信したりすることで貢献できます。

以上がVerdaccioでプライベートNPMパッケージをホスト、公開、管理しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート