Npmは、組織内で使用するのに最適なプラットフォームのように思えますが、Nexus/Mavenの場合のように、プライベートレポが可能な場合には興味があります。何もGoogleに登場しません:(
これを行う簡単な方法はないと思います。
A npmのドキュメントを見てください 可能であることを教えてくれます。
自分のプライベートレジストリを実行できますか?
はい!
最も簡単な方法は、カウチデータベースを複製し、同じ(または類似の)設計ドキュメントを使用してAPIを実装することです。
公式のCouchDBから連続レプリケーションを設定してから、内部のCouchDBをレジストリ設定として設定すると、プライベートパッケージに加えて、公開されたパッケージを読み取ることができます。デフォルトでは、内部でのみ公開されます。それからあなたが全世界で見るためにパッケージを公開したい場合は、単にそのコマンドの
--registry
設定を上書きすることができます。
クロックブログに プライベートnpmリポジトリを作成する方法 に関する優れたチュートリアルもあります。
編集(2017-02-26):
新しくはありませんが、NPMでプライベートパッケージをホストするための 有料プラン があります。
長年にわたり、NPMは、NPMを基盤とする巨大なフロントエンドエコシステムを通じて、Node.js以外の多くの企業にとっても要因となってきました。社内でJavaプロジェクトをホスティングするために Sonatype Nexus をすでに実行している場合は、内部NPMパッケージのホスティングにも使用できます。
他のオプションには JFrog Artifactory と Inedo ProGet がありますが、私はそれらを使いませんでした。
https://github.com/isaacs/npmjs.org/ :npmバージョンv1.0.26では、package.jsonファイルの依存関係としてプライベートgitリポジトリのURLを指定できます。私はそれを使っていませんが、フィードバックが大好きです。これがあなたがする必要があることです:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://[email protected]:my-app.git#v0.0.1",
}
}
次の投稿はこれについて話しています: Debuggable:Private npm modules
これを行うために使いやすいnpmパッケージがあります。 https://www.npmjs.org/package/sinopia
一言で言えば、Sinopiaはあなたがゼロ設定で設定できるプライベート/キャッシュnpmリポジトリサーバーです。
Sinopiaは以下の目的で使用できます。
2015年4月14日、 npm private modules が導入されました。
プライベートモジュールの代金を支払うと、次のことが可能になります。
- 必要なだけプライベートパッケージをホストする
- 他の有料ユーザーに、それらのパッケージの読み取りアクセス権または読み書きアクセス権を付与します。
- 他の有料ユーザーがあなたに読み取りアクセス権を与えたパッケージをインストールして使用する
- 他の有料ユーザーがあなたに書き込みアクセス権を与えているパッケージに協力する
もちろん無料ではありません - 現在は1ユーザーあたり月7ドル。
そしてそれはまだかなり新しいサービスです。たとえば、組織アカウントのサポートが欠けています(2015年6月現在)。
現在、プライベートパッケージは個々のユーザーにのみ利用可能ですが、組織アカウントのサポートは間もなく開始されます。当面の間あなたの組織のためのユーザを作成してください、そしてサポートがここにあるとき私たちはそれを組織にアップグレードすることができます。
それで完璧ではないけれども、それは個人的なパッケージを維持するための公式npm解決策であり、そしてそれ自体言及する価値があります。
UPDATE
Npm Private Packages が利用可能になりました。個々のユーザーと組織の両方の計画があります:
- パブリック&プライベートパッケージの数に制限はありません
- $ 7 /月/開発者
- 組織名に基づいて1つのスコープ名を含みます
- @ org-name/fooへのアクセスを公開および制御します
(免責事項:npm、Inc。とはいかなる形であれリモートでも提携していません。)
Verdaccioは私が探していたものであり、それはそれ自身の答えに値します;)それはSinopiaの活発に維持されているフォークです(非常に支持された答え ここで) )。 npmパッケージとしてnpmレジストリであり、見つけることができます。
ここで: https://github.com/verdaccio/verdaccio 、
ここ: https://www.verdaccio.org 、
ここ:pnpm i -g verdaccio
、または
ここ:docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
プライベートnpmレジストリをサポートするリポジトリマネージャ:
このスレッドはアップデートが必要だと思います。あなたが利用可能なnpmレジストリのどれかを見れば、それらは非常に重いので、それらはcouchdbを必要とします。 Gemfurryなどは、公共のリポジトリからフォークする必要があります。 shadow-npmのようなnpmのいくつかは 最近のコミットはありません を持っています。
それから Reggie を見つけました。それはインストールや使用が非常に簡単で、非常に良いコミットアクティビティを持っています コミュニティサポート 。その非常に軽量で、あなたはcouchdbなどに対処する必要はありません。
私があなたの質問をよく理解できないなら許してください、しかしここに私の答えがあります:
あなたは私用npmモジュールを作成し、それをインストールするためにnpmの通常のコマンドを使うことができます。ほとんどのnode.jsユーザーは自分のレポジトリとしてgitを使いますが、あなたが使えるレポジトリなら何でも使うことができます。
あなたのパッケージができたら、それから
npm install * tarball_url *
これは私が知っている最も簡単な方法です - Gemfury private npmレジストリを使ってクラウドでホストする。
無料です。Githubアカウントでログインできます。独自のデータベースをセットアップするのに比べて、時間を大幅に節約できます。
パーティーには少し遅れましたが、NodeJS(〜11月14日現在)は企業のNPMリポジトリをサポートしています - 詳しくは 公式サイト をご覧ください。
一見したところでは、npmEはNPMリポジトリーのフォールスルー・ミラーリングを許可するように見えます。つまり、実際のNPMリポジトリーでパッケージを検索します。それがあなたの内部のものでそれを見つけることができないならば。とても便利そうです!
npm Enterpriseは、npmとnpmパブリックレジストリを管理するチームによる、組織内でのJavaScriptモジュールの安全な共有と配布のためのオンプレミスソリューションです。それは必要とするチームのために設計されています。
プライベートモジュールの内部共有を容易にし、開発と展開のワークフローをより適切に制御します。オープンソースモジュールを法的要件に準拠してホストコードをオンプレミスに展開する際のセキュリティを強化します。
npmEは、すでに使用しているのと同じ標準のnpmクライアントで動作するnpmレジストリですが、現在熱狂的にノードを採用している大規模な組織に必要な機能を提供します。これは、npmオープンソースプロジェクトのスポンサーであるnpm、Inc.と、パブリックnpmレジストリのホストによって構築されています。
残念ながら、無料ではありません。あなたは裁判を受けることができますが、それは商用ソフトウェアです。これはソロ開発者にとってはそれほど素晴らしいことではありませんが、あなたがソロ開発者であれば、GitHubがあります:-)
この記事 プライベートレジストリの設定方法について
Npmjs.orgを複製するには、次のコマンドを使用します。
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true}' -H "Content-Type: application/json"
コマンドに"continuous":true
があることに注意してください。これはCouchDBの_changes APIを利用し、このAPIが通知されたときに新しい変更を引き出します。
これらの複製を停止したい場合は、簡単に"cancel":true
を追加できます。それでは、スクリプトは次のようになります。
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true, "cancel":true}' -H "Content-Type: application/json"
次に npmjs.org readme に進んでnpmをインストールします(nodejs
とgit
がインストールされていることを確認してください)。フェラはすべてのステップです
git clone git://github.com/isaacs/npmjs.org.git
cd npmjs.org
Sudo npm install -g couchapp
npm install couchapp
npm install semver
couchapp Push registry/app.js http://localhost:5984/registry
couchapp Push www/app.js http://localhost:5984/registry
私はパーティーに少し遅れるかもしれませんが、これら二つのうちのどれでもあなたのために働くかもしれません:
分散型のアプローチを好む場合は、Aragon Package Managerを使用することもできます。