过滤器插件
什么是过滤插件?
:::警告
过滤插件处于实验阶段,需要更多用户反馈
:::
何时使用过滤插件?
如果您出于不同原因需要更改元数据,这是实现方法,所有清单请求都会被拦截,但不包括压缩包、用户、配置文件或令牌请求。 verdaccio-plugin-secfilter 是一个很好的例子。
插件结构
该插件只有一个名为 filter_metadata 的异步方法,该方法引用清单,并且必须返回元数据的副本(或修改后的对象,但不推荐)。
export default class VerdaccioMiddlewarePlugin implements IPluginStorageFilter<CustomConfig> {
  async filter_metadata(metadata: Readonly<Manifest>): Promise<Package> {
    // modify the metadata
    const newMetadata = { ...metadata, ...{ name: 'fooName' } };
    return newMetadata;
  }
}
配置
只需将 filters 添加到 config.yaml 文件和您自己的插件选项中即可。
filters:
  storage-filter-blackwhitelist:
    filter_file: /path/to/file
更多信息请参阅 PR。