Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并两个不同的Verdaccio存储文件夹(CouchDb数据库)_Couchdb_Verdaccio - Fatal编程技术网

合并两个不同的Verdaccio存储文件夹(CouchDb数据库)

合并两个不同的Verdaccio存储文件夹(CouchDb数据库),couchdb,verdaccio,Couchdb,Verdaccio,我正在尝试设置一个完全离线的Verdaccio安装,我可以使用它作为一个NPM包的代理,为一小部分开发人员和我们的构建机器服务 我的挑战是,我希望能够不时更新离线npm包(添加更多包)。要做到这一点,我唯一能做的就是使用另一台机器(笔记本电脑),它位于这个隔离的网络之外,有一个单独的Verdaccio安装和npm安装那里的软件包。安装后,我在存储文件夹中有了新的tgz文件。但我的问题是如何将离线Verdaccio安装的存储文件夹与在线Verdaccio安装的存储文件夹合并。因为我无法手动执行此操

我正在尝试设置一个完全离线的Verdaccio安装,我可以使用它作为一个NPM包的代理,为一小部分开发人员和我们的构建机器服务

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

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


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

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

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


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

针对这个问题,我创建了这个CLI工具:

如何使用它:

  • 将存储文件夹复制到隔离网络
  • 运行
    批量npm发布
    3:按照步骤操作(如果您通过
    -i
    ,它将以交互方式运行
  • 运行输出的发布脚本
  • 使用此工具,您可以跳过现有的包

    您需要的是在存储文件夹中正确缓存所有依赖项。如图所示: