跳到主要内容
版本号:Next

插件

Verdaccio是一个可插入式应用程序。 它可以通过多种方式扩展,可以是新的认证方法,添加端点或者使用定制存储。

There are 4 types of plugins:

使用

安装

$> npm install --global verdaccio-activedirectory

verdaccio 作为 sinopia 分支,它向后兼容与 sinopia@1.4.0 兼容的插件。 在这种情况下,安装方法是相同的。

$> npm install --global sinopia-memory

配置

打开config.yaml文件并按如下说明更新auth部分:

默认配置如下所示,由于在默认情况下我们使用一个内置的htpasswd插件,我们可以通过注释下面几行代码来禁用它:

命名规范

自版本 2.0.0 起,插件必须以下列约定开始:

  • sinopia-xxx(已弃用,并将在 6.x.x 上删除)
  • verdaccio-xxx

版本 5.12.0 之后支持 Scope 插件,例如

auth:
'@my-org/auth-awesome-plugin':
foo: some value
bar: another value
store:
'@my-org/store-awesome-plugin':
foo: some value
bar: another value
middleware:
'@my-org/middleware-awesome-plugin':
foo: some value
bar: another value

身份验证配置

auth:
htpasswd:
file: ./htpasswd
# max_users: 1000

并将它们替换为 (如果您决定使用 ldap 插件。

auth:
activedirectory:
url: 'ldap://10.0.100.1'
baseDN: 'dc=sample,dc=local'
domainSuffix: 'sample.local'

多个身份验证插件

这在技术上是可行的,因此插件顺序很重要,因为凭据将按顺序进行解析。

auth:
htpasswd:
file: ./htpasswd
#max_users: 1000
activedirectory:
url: 'ldap://10.0.100.1'
baseDN: 'dc=sample,dc=local'
domainSuffix: 'sample.local'

中间件配置

示例:如何设置中间件插件。 所有中间件插件都必须在 middlewares 命名空间中定义。

middlewares:
audit:
enabled: true

您可以将 audit 中间件插件作为基本示例。

存储配置

:::警告

如果 store 属性在 config.yaml 文件中定义,则 storage 属性将被忽略。

:::警告

示例:如何设置存储插件。 所有存储插件都必须在 store 命名空间中定义。

store:
memory:
limit: 1000

主题配置

npm install --global verdaccio-theme-dark

您一次只能加载一个主题,并在需要时通过选项进行配置。

theme:
dark:
option1: foo
option2: bar

过滤器配置(实验性)

npm i -g verdaccio-plugin-secfilter 过滤插件的一个真实示例。

filters:
plugin-secfilter:
block:
- scope: @evil # 阻止 Scope 内的所有包
- package: semvver # 阻止恶意包
- package: @coolauthor/stolen
versions: '>2.0.1' # 阻止原本正常软件包的一些恶意版本
# uses https://www.npmjs.com/package/semver syntax

旧式插件

Sinopia 插件

:::警告

在第 6 版之后,由于命名规则的原因,不再支持 sinopia 插件。

:::警告

如果您依赖任何 sinopia 插件,请记住这些插件已经过时,将来可能无法使用。

所有 sinopia 插件应与所有未来的 verdaccio 版本兼容。 无论如何,我们鼓励贡献者将它们迁移到现代 verdaccio API,并使用 verdaccio-xx-name 作为前缀。