Sinopia に基づくプライベートnpmリポジトリがあります。
一部のパッケージがグローバルnpmリポジトリからではなくSynopiaからインストールされることをpackage.json
で何を定義する必要がありますか?
コマンドラインからインストールすると、次のように実行できます:npm install <package_name> --registry <http://<server:port>
追伸グーグルしようとし、公式のNPMドキュメントを調べましたが、何も見つかりませんでした。
私が知っている方法の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 =
シノピアの要点は、同時にプライベートregistry
とproxy
です。 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
はもうメンテナンスされていません。