Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2.4 KiB
id | title |
---|---|
linking-remote-registry | Linking a Remote Registry |
Verdaccio is a proxy and by default links the public registry.
uplinks:
npmjs:
url: https://registry.npmjs.org/
You can link multiple registries, the following document will drive you through some helpful configurations.
Using Associating Scope
The unique way to access multiple registries using the .npmrc
is the scope feature as follows:
// .npmrc
registry=https://registry.npmjs.org
@mycompany:registry=http://localhost:4873
This approach is valid, but comes with several disadvantages:
- It only works with scopes
- Scope must match, no Regular Expressions are allowed
- One scope cannot fetch from multiple registries
- Tokens/passwords must be defined within
.npmrc
and checked in into the repo.
See a full example here.
Linking a Registry
Linking a registry is fairly simple. First, define a new section in the uplinks
section. Note, the order here is irrelevant.
uplinks:
private:
url: https://private.registry.net/npm
... [truncated] ...
'webpack':
access: $all
publish: $authenticated
proxy: private
Add a proxy
section to define the selected registry you want to proxy.
Linking Multiple Registries
uplinks:
server1:
url: https://server1.registry.net/npm
server2:
url: https://server2.registry.net/npm
... [truncated] ...
'webpack':
access: $all
publish: $authenticated
proxy: server1 server2
Verdaccio supports multiple registries on the proxy
field. The request will be resolved with the first in the list; if that
fails, it will try with the next in the list and so on.
Offline Registry
Having a full Offline Registry is completely possible. If you don't want any connectivity with external remotes you can do the following.
auth:
htpasswd:
file: ./htpasswd
uplinks:
packages:
'@my-company/*':
access: $all
publish: none
'@*/*':
access: $all
publish: $authenticated
'**':
access: $all
publish: $authenticated
Remove all proxy
fields within each section of packages
. The registry will become full offline.