将Angular库发布到私有Verdaccio npm存储库

时间:2020-01-24 07:25:40

标签: npm verdaccio

我有一个专用的Verdaccio npm存储库。

我将authentification配置为使用htppasswd文件

auth:
  htpasswd:
    file: /verdaccio/conf/htpasswd
    max_users: -1

所以现在没有人可以npm add ...使用npm login ...

登录后,我可以使用npm publish

发布我的图书馆

但是我不明白一点:

  • npm login向我发送电子邮件。但是有什么意义呢?我在已发布的程序包中找不到该电子邮件的任何痕迹。
  • npm login之后,在我的.npmrc文件中生成了一个令牌。有有效期吗?
  • 在Verdaccio中发布后,我看到匿名为author name。我发现唯一“穿上”我的名字的方法是在package.json中添加一个author标签。但是,如果我们是在该图书馆工作的3个人,那么每次都必须更改我们的名字吗?有没有办法将htpasswdd与服务器上的作者姓名/电子邮件相关联?

1 个答案:

答案 0 :(得分:1)

此处是Verdaccio核心维护者。我会尽力回答您的所有问题。

npm登录要求我发送电子邮件。但是有什么意义呢?我在已发布的程序包中找不到该电子邮件的任何痕迹。

Verdaccio不需要电子邮件,但是不幸的是,npmjs.org不需要电子邮件,因此只要写任何值并跳过该步骤,我们就无法避免。

npm登录后,在我的.npmrc文件中生成了一个令牌。有有效期吗?

这取决于您使用的身份验证,默认情况下,使用

令牌永不过期
auth:
  htpasswd:
    file: /verdaccio/conf/htpasswd

但是如果您要使令牌过期,则需要添加security new property introduced in Verdaccio 4

security:
  api:
    jwt:
      sign:
        expiresIn: 29d

上面的示例将在29天后使所有令牌失效,并且它将覆盖默认行为,这些令牌变得与JWT兼容并共享其所有属性和优点。

在Verdaccio中发布后,我看到匿名作为作者名。我发现唯一“穿上”我的名字的解决方案是在package.json中添加一个author标签。但是,如果我们是在该图书馆工作的3个人,那么每次都必须更改我们的名字吗?是否可以将htpasswdd与服务器上的作者姓名/电子邮件相关联?

作者只能是一个,但是您有更多的选择,贡献者维护者。只需将它们添加到package.json中,如下所示。

enter image description here

结果将在Verdaccio UI中显示。

enter image description here