web-dev-qa-db-ja.com

package.jsonでプライベートレジストリを定義する

Sinopia に基づくプライベートnpmリポジトリがあります。

一部のパッケージがグローバルnpmリポジトリからではなくSynopiaからインストールされることをpackage.jsonで何を定義する必要がありますか?

コマンドラインからインストールすると、次のように実行できます:npm install <package_name> --registry <http://<server:port>

追伸グーグルしようとし、公式のNPMドキュメントを調べましたが、何も見つかりませんでした。

13
Anatoly

私が知っている方法の1つは.npmrcによるものですプロジェクト内でも.npmrcを使用することもできます

このように構成を設定する

registry = http://10.197.142.28:8081/repository/npm-internal/
init.author.name = Himanshu sharma
init.author.email = [email protected]
init.author.url = http://blog.example.com
# an email is required to publish npm packages
[email protected]
always-auth=true
_auth=YWRtaW46YWRtaW4xMjM=

authは、username:passwordで生成できますecho -n 'admin:admin123' | openssl base64

出力YWRtaW46YWRtaW4xMjM =

14
Himanshu sharma

シノピアの要点は、同時にプライベートregistryproxyです。 uplinks を使用して、1つのレジストリエントリポイントからすべてのパッケージをインストールできます。ローカルストレージが依存関係を解決できない場合、Sinopiaは任意のレジストリにルーティングできます。デフォルトでは、彼は points to npmjsです。

したがって、次のように設定すると、

   # a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: https://registry.npmjs.org/

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

  '**':
    # allow all users (including non-authenticated users) to read and
    # publish all packages
    #
    # you can specify usernames/groupnames (depending on your auth plugin)
    # and three keywords: "$all", "$anonymous", "$authenticated"
    access: $all

    # allow all known users to publish packages
    # (anyone can register by default, remember?)
    publish: $authenticated

    # if package is not available locally, proxy requests to 'npmjs' registry
    proxy: npmjs

すべての依存関係を、それぞれのソースから独立して解決できるはずです

btw:sinopiaはもうメンテナンスされていません。

0
Juan Picado