上行链路
上行链路 是指可以访问到外部包的外部注册服务器(registry)地址。
使用
uplinks:
npmjs:
url: https://registry.npmjs.org/
server2:
url: http://mirror.local.net/
timeout: 100ms
server3:
url: http://mirror2.local.net:9000/
baduplink:
url: http://localhost:55666/
以下是使用 Verdaccio 无缝集成 npmjs 和 GitHub registry 的示例: 如何通过 GitHub registry 使用 Verdaccio
配置
你可以定义多个上行链路,每个上行链路必须有一个唯一的名称(key)。 它们可以包括以下属性:
属性 | 类型 | 必须的 | 范例 | 支持版本 | 描述 | 默认值 |
---|---|---|---|---|---|---|
url | string | 是 | https://registry.npmjs.org/ | 全部 | 外部注册服务器URL | npmjs |
ca | string | 否 | ~./ssl/client.crt' | 全部 | SSL证书文件路径 | 无默认值 |
timeout | string | 否 | 100ms | 全部 | 为请求设置新的超时时间 | 30s |
maxage | string | 否 | 10m | 全部 | 缓存时间的有效阈值 | 2m |
fail_timeout | string | 否 | 10m | 全部 | 请求在连续失败超过指定次数后的最长等待重试时间 | 5m |
max_fails | number | 否 | 2 | 全部 | 请求连续失败的最大次数限制 | 2 |
cache | boolean | 否 | [true,false] | >= 2.1 | 缓存下载的远程tarball文件到本地 | true |
auth | list | 否 | 见下文 | >= 2.5 | 指定“授权authorization”请求头的内容 详情见 | 禁用 |
headers | list | 否 | authorization: "Bearer SecretJWToken==" | 全部 | 上行链路请求的请求头header列表 | 禁用 |
strict_ssl | boolean | 否 | [true,false] | >= 3.0 | 为true时,会检测SSL证书的有效性 | true |
agent_options | object | 否 | maxSockets: 10 | >= 4.0.2 | 负责管理上行链路连接持久性和重用性的 HTTP 或 HTTPS 代理选项 更多信息。 | 无默认值 |
Auth属性
auth
属性内容是向上行链路发起请求时提供的授权令牌。 例如使用默认环境变量:
uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token_env: true # 默认情况下,使用环境变量 `NPM_TOKEN`。
或者指定一个 自定义 环境变量:
uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token_env: FOO_TOKEN # 用一个自定义值覆盖默认的 `NPM_TOKEN`。
token_env: FOO_TOKEN
内部将使用 process.env['FOO_TOKEN']
或直接在配置文件中指定一个令牌(安全方面不推荐):
uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token: 'token'
注意:
token
的优先级高于token_env
须知
- 上行链路必须是与
npm
兼容的注册中心节点。 Eg: verdaccio,sinopia@1.4.0
, npmjs registry, yarn registry, JFrog, Nexus and more. - 设置
cache
为 false 可以帮助节省你的硬盘空间。 这将避免存储tarballs
,但是它将保留元数据在文件夹里。 - 多个上行链路可能会减慢包的查找速度 对于 npm 客户端发出的每个请求,verdaccio 会对每个配置的上行链路进行 1 次调用。
- (timeout, maxage 和 fail_timeout) 格式遵循 NGINX 度量单位
- 使用 Helm Chart 时,可以使用
secretEnvVars
注入敏感环境变量,可用于配置私有上行链路身份验证。