跳到主要内容
版本号:Next

上行链路

上行链路 是指可以访问到外部包的外部注册服务器(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)。 它们可以包括以下属性:

属性类型必须的范例支持版本描述默认值
urlstringhttps://registry.npmjs.org/全部外部注册服务器URLnpmjs
castring~./ssl/client.crt'全部SSL证书文件路径无默认值
timeoutstring100ms全部为请求设置新的超时时间30s
maxagestring10m全部缓存时间的有效阈值2m
fail_timeoutstring10m全部请求在连续失败超过指定次数后的最长等待重试时间5m
max_failsnumber2全部请求连续失败的最大次数限制2
cacheboolean[true,false]>= 2.1缓存下载的远程tarball文件到本地true
authlist见下文>= 2.5指定“授权authorization”请求头的内容 详情见禁用
headerslistauthorization: "Bearer SecretJWToken=="全部上行链路请求的请求头header列表禁用
strict_sslboolean[true,false]>= 3.0为true时,会检测SSL证书的有效性true
agent_optionsobjectmaxSockets: 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 注入敏感环境变量,可用于配置私有上行链路身份验证。