我正在尝试设置一个完全离线的Verdaccio安装,我可以将其用作一个小开发团队和我们的构建机器的NPM包的代理。
我的挑战是,我希望能够不时地更新离线的npm包(以添加更多的包(。要做到这一点,我唯一的可能就是使用另一台机器(笔记本电脑(,它位于这个孤立的网络之外,并且有一个单独的Verdaccio安装和npm install
包。安装后,我在存储文件夹中有了新的tgz文件。但我的问题是,如何将脱机安装的Verdaccio的Storage文件夹与联机安装的Storage文件夹合并。因为我无法手动执行此操作,尤其是当您的包有很多依赖项时。
是否有我可以轻松设置的复制(我不是CouchDb方面的专家(,甚至可以使用纯CLI指令?或者有没有一种方法可以通过Verdaccio或其他实用程序实现这一点?
请记住,这个网络是完全孤立的(没有网络访问(,即使它也用于开发。
我刚刚得到了一个最疯狂的想法,这可能是一个好的解决方案:
每当我需要合并新的存储文件夹内容时,我只需将其复制到一个临时位置,启动一个新的Verdaccio实例(存储在该位置(,然后简单地将主实例的uplink
设置为新的/临时的。
通过这种方式,我将能够在主注册表上的新软件包上运行"npm install",这将自动更新主存储文件夹(合并数据库(。最后,我只需停止第二个Verdaccio实例并清理临时文件夹。
正是为了这个问题,我创建了这个CLI工具:bulk-npm-publish
。
如何使用:
- 将存储文件夹复制到隔离的网络中
- 运行
bulk-npm-publish
3:按照步骤操作(如果通过-i
,它将以交互方式运行 - 运行输出的发布脚本
使用此工具,您可以跳过现有的包。