0

我正在尝试设置一个完全离线的 Verdaccio 安装,我可以将它用作一个小型开发团队和我们的构建机器的 NPM 包代理。

我的挑战是我希望能够不时更新离线 npm 包(以添加更多包)。为此,我唯一的可能是使用位于此隔离网络之外的另一台机器(笔记本电脑),并npm install在那里安装单独的 Verdaccio 和软件包。安装后,我在 storage 文件夹中有新的 tgz 文件。但我的问题是如何将离线 Verdaccio 安装中的 Storage 文件夹与在线安装的 Storage 文件夹合并。因为我无法手动执行此操作,尤其是当您拥有包含大量依赖项的包时。

是否有一些我可以轻松设置的复制(我不是 CouchDb 方面的专家),甚至是我可以使用的普通 CLI 指令?或者有没有办法使用 Verdaccio 或其他一些实用程序来实现这一点?

请记住,即使它也用于开发,该网络也是完全隔离的(没有网络访问权限)。

4

2 回答 2

1

对于这个问题,我创建了这个 CLI 工具:bulk-npm-publish.

如何使用它:

  1. 将存储文件夹复制到您的隔离网络。
  2. 运行bulk-npm-publish 3:按照步骤操作(如果通过-i它将交互运行。
  3. 运行输出的发布脚本。

使用此工具,您可以跳过已经存在的包。

于 2020-06-28T01:43:21.830 回答
0

我刚刚得到了一个可能是一个很好的解决方案的最疯狂的想法:

每当我需要合并一个新的存储文件夹内容时,我只需将其复制到一个临时位置,启动一个新的 Verdaccio 实例(在该位置具有存储),然后只需将uplink主实例的 设置为新的/临时的.

这样我就可以在主注册表上的新包上运行“npm install”,这将自动更新主存储文件夹(合并数据库)。最后,我只需停止第二个 Verdaccio 实例并清理临时文件夹。

于 2019-11-12T09:04:26.723 回答