240

Npm は組織内で使用するのに最適なプラットフォームのように思えます。Nexus/Maven のように、プライベート リポジトリが可能かどうかに興味があります。Googleには何も表示されません:(

4

14 に答える 14

212

https://github.com/isaacs/npmjs.org/:npmバージョンv1.0.26では、package.jsonファイルの依存関係としてプライベートgitリポジトリのURLを指定できます。私はそれを使用していませんが、フィードバックが欲しいです。これがあなたがする必要があることです:

{
    "name": "my-app",
    "dependencies": {
        "private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
    }
}

次の投稿はこれについて話します:デバッグ可能:プライベートnpmモジュール

于 2011-10-18T12:34:06.007 に答える
103

これを行う簡単な方法はないと思います。

npm のドキュメントを見ると、それが可能であることがわかります。

独自のプライベート レジストリを実行できますか?

はい!

最も簡単な方法は、couch データベースを複製し、同じ (または類似の) 設計ドキュメントを使用して API を実装することです。

公式の CouchDB から継続的なレプリケーションをセットアップし、内部の CouchDB をレジストリ構成として設定すると、非公開のパッケージに加えて、公開されたパッケージを読み取ることができ、デフォルトでは内部でのみ公開されます。その後、全世界が見られるようにパッケージを公開したい場合は、--registryそのコマンドの設定を上書きするだけです。

クロック ブログには、プライベート npm リポジトリの作成方法に関する優れたチュートリアルもあります。

編集 (2017-02-26):

それほど新しいものではありませんが、npm でプライベート パッケージをホストする有料プランが現在あります。

何年にもわたって、npm は、npm 上に構築された巨大なフロントエンド エコシステムを通じて、Node.js 以外の多くの企業にとっても重要な要素になりました。社内で Java プロジェクトをホストするために既にSonatype Nexusを実行している場合は、それを使用して内部 npm パッケージをホストすることもできます。

他のオプションにはJFrog ArtifactoryInedo ProGetがありますが、私はそれらを使用していません。

于 2011-09-28T01:02:43.260 に答える
93

これを行うための使いやすい npm パッケージがあります。 https://www.npmjs.org/package/sinopia

一言で言えば、Sinopia は、構成なしでセットアップできるプライベート/キャッシング npm リポジトリ サーバーです。

Sinopia は次の目的で使用できます。

  • 公開せずに独自のプライベート パッケージを公開する
  • 使用されているパブリック パッケージのみをキャッシュします (パブリック レジストリ全体を複製する必要はありません)。
  • 内部で作成された修正バージョンで公開パッケージをオーバーライドします。
于 2014-02-28T23:13:12.790 に答える
28

On 14th of April (2015), npm private modules were introduced.

When you pay for private modules, you can:

  • Host as many private packages as you want
  • Give read access or read-write access for those packages to any other paid user
  • Install and use any packages that other paid users have given you read access to
  • Collaborate on any packages that other paid users have given you write access to

Of course it's not free - currently 7$ a month, per user.

And it's still a pretty new service. For example support for organization accounts is missing (as of June 2015):

Currently, private packages are only available for individual users, but support for organization accounts is coming soon. Feel free to create a user for your organization in the meantime, and we can upgrade it to an organization when support is here.

So while not perfect, it's the official npm solution to maintaining private packages, and that itself makes it worth mentioning.

UPDATE

Npm Private Packages are now available, with plans for both individual users and organizations:

  • Unlimited number of public & private packages
  • $7/month/developer
  • Includes one scope name, based on organization name
  • Publish and control access to @org-name/foo

(disclaimer: not even remotely affiliated in any way with npm, Inc.)

于 2015-06-04T09:31:24.397 に答える
9

私があなたの質問をよく理解していないなら許してください、しかしここに私の答えがあります:

プライベートnpmモジュールを作成し、npmの通常のコマンドを使用してインストールできます。ほとんどのnode.jsユーザーはリポジトリとしてgitを使用しますが、自分に合ったリポジトリを使用できます。

  1. プロジェクトでは、NPMパッケージのスケルトンが必要になります。ほとんどのノードモジュールにはgitリポジトリがあり、NPMとの統合方法を確認できます(package.jsonファイル。これはこの一部であり、NPMのWebサイトにnpmパッケージの作成方法が示されています)。
  2. Makeに似たものを使用して、パッケージを作成し、インターネットまたはネットワークから利用できるようにtarballして、npmインストールのダウンロード用にステージングします。
  3. パッケージが作成されたら、次を使用します

    npm install * tarball_url *

于 2011-09-27T23:35:08.467 に答える
5

パーティーには少し遅れましたが、NodeJS (11 月 14 日までだと思います) は企業の NPM リポジトリをサポートしています。詳細については、公式サイトを参照してください。

一見すると、npmE は NPM リポジトリのフォールスルー ミラーリングを許可しているように見えます。つまり、内部リポジトリでパッケージが見つからない場合、実際のNPM リポジトリでパッケージを検索します。とても便利そうです!

npm Enterprise は、npm とパブリック npm レジストリを管理するチームが提供する、組織内で JavaScript モジュールを安全に共有および配布するためのオンプレミス ソリューションです。以下を必要とするチーム向けに設計されています。

プライベート モジュールの簡単な内部共有 開発およびデプロイ ワークフローのより優れた制御 オープンソース モジュールのデプロイに関するより厳格なセキュリティ オンプレミスでコードをホストするための法的要件への準拠 npmE はプライベート npm

npmE は、すでに使用しているのと同じ標準の npm クライアントで動作する npm レジストリですが、現在ノードを熱心に採用している大規模な組織が必要とする機能を提供します。これは、npm オープン ソース プロジェクトのスポンサーであり、パブリック npm レジストリのホストである npm, Inc. によって構築されています。

残念ながら、無料ではありません。試用できますが、商用ソフトウェアです。これはソロの開発者にとってはあまり良いことではありませんが、ソロの開発者なら GitHub があります :-)

于 2015-03-06T16:24:44.053 に答える
3

この投稿では、非公開レジストリのセットアップ方法について説明しています

  • システムにcouchdbがインストールされていることを確認してください
  • 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 をインストールします (nodejsgitがインストールされていることを確認してください)。打撃はすべてのステップです

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 
于 2013-06-23T09:40:45.397 に答える
2

私はパーティーに少し遅れるかもしれませんが、次の 2 つのいずれかがうまくいく可能性があります。

  1. http://www.jfrog.com/confluence/display/RTF/Npm+リポジトリ
  2. https://github.com/krakenjs/kappa
于 2014-05-28T17:13:41.530 に答える
0

分散型アプローチを好む場合は、Aragon Package Manager を使用することもできます。

  1. APM の使用: http://blog.aragon.one/using-apm-to-replace-npm-and-other-centralized-package-managers/
  2. APM のデプロイ: https://github.com/aragon/aragonOS#apm
于 2019-02-10T08:07:14.673 に答える