検索

Private npm Repositories

以下は、プライベート npm リポジトリを設定する方法に関する詳細なガイドです。これには、開始に役立つさまざまな代替案や実用的なコード スニペットが含まれています。あなたが個人の開発者であっても、大規模なチームの一員であっても、独自の npm パッケージを非公開でホストすることで、制御性、柔軟性、セキュリティの向上を実現できます。


プライベート npm リポジトリを使用する理由

  1. セキュリティとコントロール: パッケージとコードを内部に保持します。
  2. ビルドの高速化: 外部依存関係とネットワーク遅延を削減します。
  3. アクセス管理: 特定のパッケージにアクセスまたは公開できるユーザーを制御します。
  4. バージョン管理とアーカイブ: 混乱や外部の混乱を招くことなく、内部パッケージの複数のバージョンを維持します。

プライベート npm リポジトリをホストするための一般的なアプローチ

  1. セルフホスト型ソリューション

    • Verdaccio: 人気のあるオープンソースの軽量 npm プロキシ レジストリ。
    • Sonatype Nexus: 複数のリポジトリ形式 (npm、Maven など) をホストするための包括的なプラットフォーム。
    • JFrog Artifactory: 広く使用されているバイナリ リポジトリ マネージャー。
  2. Git ホストによって管理

    • GitHub パッケージ: GitHub 組織内でプライベート npm パッケージをホストします。
    • GitLab パッケージ: GitLab の DevOps プラットフォームの一部として組み込みの npm レジストリを提供します。
    • Bitbucket (サードパーティ統合またはカスタム ソリューション経由)。
  3. npm エンタープライズ

    • 大規模なチームがあり、エンタープライズレベルの機能 (高度なアクセス制御、セキュリティ監査など) が必要な場合は、npm Enterprise が選択肢になる可能性があります。

1. Verdaccio を使用したプライベート npm レジストリのセットアップ

Verdaccio は、セットアップと使用が簡単なオープンソースの npm レジストリ プロキシです。これにより、プライベート パッケージをホストしたり、公式の npm レジストリからパブリック パッケージをキャッシュしたりすることができます。

1.1 Verdaccioのインストール

Node.js がすでにマシンにインストールされていると仮定します:

# Install Verdaccio globally
npm install --global verdaccio

1.2 ヴェルダッチョを開始する

verdaccio

デフォルトでは、Verdaccio はポート 4873 で起動します。ブラウザを開いて http://localhost:4873 にアクセスすると、Verdaccio UI が表示されます。

1.3 Verdaccio の構成

Verdaccio は、最初の実行時にデフォルトの構成ファイルを作成します。編集してカスタマイズできます (ファイル パスはシステムによって異なる場合があります)。一般的な構成 (~/.config/verdaccio/config.yaml) は次のようになります:

# Install Verdaccio globally
npm install --global verdaccio
  • storage: Verdaccio がパッケージを保存するディレクトリ。
  • uplinks: 公式 npm レジストリを指します。
  • packages: アクセス、公開、およびプロキシのルールを定義します。

1.4 ユーザーの作成とログイン

verdaccio

これにより、ユーザー名、パスワード、電子メールの入力が求められます。完了すると、プライベート レジストリにログインします。

1.5 パッケージの公開

有効な package.json を含むパッケージ ディレクトリ内:

storage: ./storage
auth:
  htpasswd:
    file: ./htpasswd
    max_users: 100

uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    access: $all
    publish: $authenticated
    proxy: npmjs

  '**':
    access: $all
    publish: $authenticated
    proxy: npmjs

middlewares:
  audit:
    enabled: true

logs:
  - { type: stdout, format: pretty, level: http }

それだけです!これで、パッケージがローカルの Verdaccio レジストリに公開されました。

1.6 プライベート レジストリからのインストール

このレジストリからパッケージをインストールするには、次のいずれかを実行できます:

  • --registry フラグを使用します。
npm adduser --registry http://localhost:4873
  • または、グローバルまたは特定のプロジェクト内でこのレジストリを指すように .npmrc を設定します。
npm publish --registry http://localhost:4873

2. GitHub パッケージの使用

すでにコードを GitHub でホストしている場合は、GitHub パッケージ を使用すると、すべてを 1 つ屋根の下に保管できる便利な方法となります。

2.1 リポジトリの GitHub パッケージを有効にする

  1. GitHub 上のリポジトリに移動します。
  2. 設定 をクリックします。 パッケージ
  3. 組織/アカウントで GitHub パッケージが有効になっていることを確認してください。

2.2 GitHub パッケージに対する認証

read:packages スコープと write:packages スコープを使用してパーソナル アクセス トークン (PAT) を作成します。このトークンは、開発者設定 の GitHub 設定から生成できます。 個人アクセス トークン.

トークンを .npmrc に追加します:

  npm install <package-name> --registry http://localhost:4873
</package-name>

YOUR_GITHUB_USERNAME を実際のユーザー名または GitHub 組織名に置き換えます。

2.3 GitHub パッケージへのパッケージの公開

GitHub ユーザー名または組織と一致するスコープで package.json を更新します。

  registry=http://localhost:4873

次に公開します:

//npm.pkg.github.com/:_authToken=YOUR_PERSONAL_ACCESS_TOKEN
@YOUR_GITHUB_USERNAME:registry=https://npm.pkg.github.com

2.4 GitHub パッケージからのインストール

.npmrc が GitHub パッケージを指していることを確認してから、次のようにします。

{
  "name": "@YOUR_GITHUB_USERNAME/my-private-package",
  "version": "1.0.0",
  "publishConfig": {
    "registry": "https://npm.pkg.github.com"
  }
}

3. GitLab パッケージの使用

GitLab は、組み込みのパッケージ レジストリも提供します。

3.1 GitLab パッケージ レジストリのセットアップ

  1. GitLab プロジェクトに移動します。
  2. 設定に移動します -> パッケージとレジストリ -> パッケージレジストリ

3.2 .npmrcの設定

GitLab 認証情報を使用してローカル/グローバル .npmrc ファイルを作成または更新します。

npm publish

3.3 GitLab への公開

GitLab グループまたはユーザー名前空間と一致するように package.json スコープを更新します。

npm install @YOUR_GITHUB_USERNAME/my-private-package

次に公開します:

# Install Verdaccio globally
npm install --global verdaccio

3.4 GitLab パッケージからのインストール

verdaccio

4. Sonatype Nexus または JFrog Artifactory による自己ホスト

複数のリポジトリ タイプをサポートする堅牢なオンプレミス ソリューションをお探しの場合は、Sonatype Nexus または JFrog Artifactory が最適かもしれません。

4.1 Nexus リポジトリ

  1. サーバーまたは開発マシンに Nexus Repository Manager をインストールします。
  2. http://your-nexus-server:8081 で Nexus UI にログインします。
  3. リポジトリ設定から新しいnpm (ホスト型)リポジトリを作成します。
  4. 認証を設定し (必要な場合)、URL をメモします。

同様の .npmrc セットアップを使用して、npm クライアントが新しい Nexus npm リポジトリを指すようにします。

storage: ./storage
auth:
  htpasswd:
    file: ./htpasswd
    max_users: 100

uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    access: $all
    publish: $authenticated
    proxy: npmjs

  '**':
    access: $all
    publish: $authenticated
    proxy: npmjs

middlewares:
  audit:
    enabled: true

logs:
  - { type: stdout, format: pretty, level: http }

通常どおりパッケージを公開します:

npm adduser --registry http://localhost:4873

4.2 JFrog Artifactory

  1. Artifactory をインストールして起動します。
  2. Artifactory UI で、npm の ローカル リポジトリ を作成します。
  3. 同様に .npmrc を設定します。
npm publish --registry http://localhost:4873

次を使用して公開します:

  npm install <package-name> --registry http://localhost:4873
</package-name>

5.npmエンタープライズ

完全な制御、監査、高度なセキュリティを必要とする大規模組織の場合、npm Enterprise がオプションです。それは以下を提供します:

  • シングル サインオン (SSO) の統合。
  • 強化されたセキュリティ スキャン と監査。
  • きめ細かいアクセス制御

セットアップ手順については、npm Enterprise のドキュメントを参照してください。


ベストプラクティスとヒント

  1. スコープを使用する: プライベート パッケージ (@company/your-package) をスコープすると、パブリック パッケージと区別するのに役立ちます。
  2. .npmrc 管理:
    • 混乱を避けるために、プロジェクトごと .npmrc ファイルを使用してください。
    • 資格情報をバージョン管理の対象外にします。
  3. CI/CD による自動化: 一貫性を保つために、公開手順を CI/CD パイプラインに統合します。
  4. プロキシのセットアップ: ほとんどの自己ホスト型レジストリはパブリック npm レジストリをプロキシできるため、共通の依存関係をインストールするためにレジストリを切り替える必要はありません。
  5. 監視と監査: レジストリ内のダウンロード、バージョン、アクティビティを追跡します。

結論

プライベート npm リポジトリをセットアップすると、独自のパッケージを安全に管理およびホストできるようになります。 Verdaccio のようなセルフホスト型ソリューションを使用している場合でも、GitHub パッケージや GitLab パッケージなどのマネージド ソリューションを活用している場合でも、Nexus、Artifactory、npm Enterprise などのエンタープライズ ソリューションを選択している場合でも、基本は同じです。

  1. レジストリを設定します。
  2. 認証を設定します。
  3. パッケージを公開して使用します。

セキュリティ、スケーラビリティ、メンテナンスに関する組織の要件に最も適したアプローチを選択してください。上記の例とコード スニペットを使用すると、独自のプライベート npm パッケージのホストを開始するための強固な基盤が得られるはずです。コーディングを楽しんでください!

以上がプライベート npm リポジトリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. Javascript:どの言語を学ぶべきですか?Python vs. Javascript:どの言語を学ぶべきですか?May 03, 2025 am 12:10 AM

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワーク:最新のWeb開発のパワーJavaScriptフレームワーク:最新のWeb開発のパワーMay 02, 2025 am 12:04 AM

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

JavaScript、C、およびブラウザの関係JavaScript、C、およびブラウザの関係May 01, 2025 am 12:06 AM

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、型を使用してストリーミングしますnode.jsは、型を使用してストリーミングしますApr 30, 2025 am 08:22 AM

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

Python vs. JavaScript:パフォーマンスと効率の考慮事項Python vs. JavaScript:パフォーマンスと効率の考慮事項Apr 30, 2025 am 12:08 AM

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

JavaScriptの起源:その実装言語の調査JavaScriptの起源:その実装言語の調査Apr 29, 2025 am 12:51 AM

JavaScriptは1995年に発信され、Brandon Ikeによって作成され、言語をCに実現しました。 2。JavaScriptのメモリ管理とパフォーマンスの最適化は、C言語に依存しています。 3. C言語のクロスプラットフォーム機能は、さまざまなオペレーティングシステムでJavaScriptを効率的に実行するのに役立ちます。

舞台裏:JavaScriptをパワーする言語は何ですか?舞台裏:JavaScriptをパワーする言語は何ですか?Apr 28, 2025 am 12:01 AM

JavaScriptはブラウザとnode.js環境で実行され、JavaScriptエンジンに依存してコードを解析および実行します。 1)解析段階で抽象的構文ツリー(AST)を生成します。 2)ASTをコンパイル段階のバイトコードまたはマシンコードに変換します。 3)実行段階でコンパイルされたコードを実行します。

PythonとJavaScriptの未来:傾向と予測PythonとJavaScriptの未来:傾向と予測Apr 27, 2025 am 12:21 AM

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境