在本地测试您自己的包裹的不同方法:Verdaccio
#初学者 #教程 #node #verdaccio

这是一系列文章的一部分:

  1. Linking local files
  2. npm link
  3. npm yalc
  4. verdaccio
  5. 相对depps

在本系列中,我们将了解如何使用Verdaccio在本地测试您的软件包。

1.什么是Verdaccio?

verdaccio除了在中世纪晚期意大利流行的壁画绘画(通常在墙面上,通常在墙壁表面上),轻量级代理和私人包装注册表中。

可以根据需要配置它,并使用自己的小数据库开箱即用,并在此过程中引入缓存的下载模块,因此您不需要自己的一个即可开始。

此外,它允许您托管私有节点软件包,并与所有客户端软件包管理器(例如NPM,YARN和PNPM)兼容。

对于那些寻求扩展其存储功能的人,Verdaccio支持各种社区制造的插件,以将Amazon的S3,Google Cloud Storage或创建您自己的插件等服务,并提供Docker和Kubernetes的支持。

2.如何在本地使用它?

让我们说您有一个React应用程序和一个组件库,您想在React应用程序中测试该精美的组件库。在与本系列有关的上一篇文章中,我们已经看到了如何使用Linking local filesNpm link

开发组件库

现在,我们将学习如何使用Verdaccio来完成它。

通常的方法是将您的库上传到NPM或类似的软件包管理器,然后下载并安装依赖项。但是您不想添加库,因为您想更深入地测试它。

Verdaccio为您提供了解决方案。您可以将其安装在本地计算机上,并将其用作库的提供商。

让我们看看如何在本地使用Verdaccio开始。开始使用它的最直接方法是:

安装

要在本地计算机中全球安装它,您只需要运行以下命令:

npm install --global verdaccio

配置

默认情况下,Verdaccio为您提供了开始使用软件包注册表的所有内容。如果您想查看默认配置,这里有:

storage: ./storage 
auth: 
 htpasswd: 
 file: ./htpasswd 
uplinks: 
 npmjs: 
 url: https://registry.npmjs.org/ 
packages: 
 "@*/*": 
 access: $all 
 publish: $authenticated 
 proxy: npmjs 
 "**": 
 proxy: npmjs 
log: { type: stdout, format: pretty, level: http } 

要进行进一步的配置,建议您查看官方文档here

用法

为了运行Verdaccio服务,您只需要在终端中运行命令verdaccio即可。几秒钟后,您将通过http://localhost:4873/

拥有完全工作的verdaccio

verdaccio-init-console

verdaccio-homepage
一旦我们运行了Verdaccio软件包注册表,我们只需要按照几个步骤安装了库。

第一步:创建.npmrc文件

我们必须在库和React应用程序中都这样做,该应用程序将在运行install命令时将组件库以连接到正确的软件包注册表。

这应该是该文件的内容:

@ks:registry=http://localhost:4873

第二步:登录Verdaccio软件包注册表

一旦我们运行了Verdaccio,我们就需要创建一个用户才能发布软件包。我们将通过使用以下命令来做到这一点:

npm adduser --registry http://localhost:4873 

它将询问您的用户名,密码和电子邮件。之后,系统将自动记录您作为您创建的用户。

如果您想创建多个用户并更改会话,则可以使用此命令:

npm login --registry http://localhost:4873 

第三步:发布您的软件包

要在正确的软件包注册表上发布库,您必须确保创建了指向Verdaccio本地URL的.npmrc

我将为您提供一些您必须在组件库的package.json中添加的脚本,以便每次发布时发布库并升级版本。如果您每次发布时都不会升级版本,则在运行命令后返回错误。

"unpublish-library": "npm unpublish @ks/my-fancy-library --force", 
"update-version": "npm version patch --force", 
"publish-library": "npm run build && npm run update-version && npm run unpublish-library && npm publish".

运行命令publish-library后,您应该能够在Verdaccio dashboard上看到类似的东西:

verdaccio-installed-library

最后一步:在应用程序中安装库,更新库,然后查看您更改。

这是真理的时代。发布库后,我们将其安装在我们的React应用程序上,并使用单个组件来查看其工作原理。

在运行verdaccio软件包注册表后,我们将通过您的软件包管理器安装库(让使用示例NPM)并运行此命令:

npm install @ks/my-fancy-library@latest 

安装了库后,请确保其正确配置并显示您想要的组件
之后,我们将去图书馆,我们将在您要显示的组件上更改一些内容,然后您只需要做两件事:

  • 构建并将您的库发布到Verdaccio:
npm run publish-library
  • 转到React App并安装Component Library的最新版本:
 npm install @ks/my-fancy-library@latest 

当过程完成时,您将能够看到在组件库上完成的更改

额外的英里:如何使用Docker运行Verdaccio?

有一种方法可以使用Docker安装Verdaccio软件包注册表。它也很简单:

您需要安装Docker守护程序并运行,以运行命令并抬高容器。

之后,您可以利用此命令来执行此操作:

docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio 

如果一切顺利,您应该有一个正在运行的Verdaccio here

拥有该工作,您需要按照我在本节上提到的相同说明进行了说明how to install the library locally,特别是在配置步骤中,因为该过程几乎相同。您唯一需要替换的是.npmrc中的URL,从此http://localhost:4873/到此http://0.0.0.0:4873/

可能的用法

我会在这里留下一些关于您可以使用Verdaccio的想法:

  • 创建自己的私人软件包注册表

  • 减少CI过程的时间缓存

  • 测试MonorePos和注册表中的部署

  • 作为CI过程中包装的备份。

  • 个人用法,当您有与彼此相关的不同软件包时。

  • 教师目的(有时为npm mark套件作为垃圾邮件)

  • 它允许您使用AWS或Google Cloud存储软件包缓存

  • 上行链路:您可以配置它以定义要在每个软件包中用户使用的代理。

有趣的链接