パッケージとキャッシュを使用した5分でのローカルNPMリポジトリ

良い一日!



遅かれ早かれ、組織はプロジェクト間でjsモジュールを配布する際に問題を抱えており、当社でこの疑問が生じたときが来ました。



コードをコピーして貼り付けることは、暗黒面への道なので、jsコードだけでなく、それからnpmパッケージを作成してプロジェクト間で配布することが決定されました。



無料のプライベートnpmリポジトリの検索は行き詰まり、 npmでプライベートリポジトリを使用するには料金がかかります(これは私たちの考え方ではありません)。



オフィスには常に(ほぼ)動作するサーバーがあるため、ローカルnpmを展開することが決定されました。



画像



人気のあるローカルnpmリポジトリのデバイスは非常にシンプルで単調です。Verdaccioを選択したのは、その更新が比較的最近公開されたためです。



これは主にNode.js> 4にインストールされ、特定のポートへのWebインターフェースを提供するnpmパッケージです。



巨大なプラスは、ローカルnpmが要求されたパッケージを見つけられない場合、npmjs.comに移動し、必要なパッケージをディスクにダウンロードし、このパッケージの要求が繰り返されると、既にキャッシュされたバージョンを配布するキャッシング機能です。



それで、セットアップする。



サーバーとなるマシンで:



npm i -g verdaccio
      
      





ファイルC:\ Users \ lab \ AppData \ Roaming \ verdaccio \ config.yamlにはサーバーパラメータがあります



デフォルトのパラメーターは実行可能で、何も変更することはできません。ファイルの最後に設定を追加するだけで、どのVerdaccioがどのポートでリッスンするかを理解します。



 listen: 192.168.51.79:1234
      
      





192.168.51.79はIPサーバーであり、IPサーバーを介してローカルネットワークからアクセスできるようにアドレスを設定するか、そのDNS名とポート1234を追加してWebインターフェースにアクセスします。



listen:192.168.51.79:80を登録する場合、クライアントを構成するときにポートを書き込む必要はありません。



次に、ローカルnpmを実行します



 verdaccio
      
      





残りのアクションはクライアントで実行されます。



ローカルリポジトリへのパスを設定します。



 npm set registry http://192.168.51.79:1234
      
      





これで、すべてのnpm要求がローカルサーバーを介してキャッシュされます。



npmパッケージをサーバーに公開する必要がある場合は、以下の手順に従ってください。



ユーザーを作成



 npm adduser --registry http://192.168.51.79:1234 login password mail@mail.ru
      
      





ログイン



 npm login password bezrukov@mir-omsk.ru
      
      





ユーザー「ログイン」の下にいることを確認します



 npm whoami
      
      





パッケージを公開します。rootProjectFolderは少なくとも3つのファイルを含むフォルダーですindex.js \ package.json \ README.md、 例はgithubに投稿されています。



 cd /rootProjectFolder npm publish
      
      





パッケージを更新します。 package.jsonのバージョンを更新し、コマンドを実行します



 cd /rootProjectFolder npm publish
      
      





ローカルサーバー上のパッケージ、 192.168.51.79 :1234に移動して、新しいパッケージがあることを確認できます。



ところで、各パッケージに関する情報は便利な形式で表示され、ローカルパッケージの検索があります。



画像



PS:ネットワークにプロキシがある場合、サーバー上でパラメータを明示的に指定する必要がありますが、npmリポジトリはローカルであり、クライアントにアクセスするためのプロキシサーバーは必要ないため、クライアントでこれを行う必要はありません。



サーバーで、 npm config editコマンドを実行し、次の行を追加します



 proxy=http://name:pass@proxy:port/ https-proxy=http://name:pass@proxy:port/ registry=http://registry.npmjs.org/
      
      







PPS Windows上で実行する場合は、サーバーでpowershellを使用することをお勧めします。cmdnpmでは1日後にフリーズする場合があります。



これがどのように機能するかについてのコメントとフィードバックを歓迎します。



All Articles