Node.js 如何冻结所有Cordova依赖项?

Node.js 如何冻结所有Cordova依赖项?,node.js,docker,cordova,npm,offline,Node.js,Docker,Cordova,Npm,Offline,我正在构建一个Cordova应用程序,其中对构建环境的严格控制是规范/业务需求的一部分 我想(a)找出每个依赖项的版本、二进制文件和url,(b)确保它们不会自动更新 我想使用它为构建设置Docker映像,和/或所有依赖项的本地镜像。如果可以从镜像中重新生成Docker映像,则为最佳;如果Docker映像在没有网络连接(包括cordova平台rm/add…)的情况下工作正常,那就差一秒了 不幸的是,依赖项的数量(包括依赖项的依赖项等)是巨大的,更糟糕的是,有许多完全不同类型的包使用不同的包管理系

我正在构建一个Cordova应用程序,其中对构建环境的严格控制是规范/业务需求的一部分

我想(a)找出每个依赖项的版本、二进制文件和url,(b)确保它们不会自动更新

我想使用它为构建设置Docker映像,和/或所有依赖项的本地镜像。如果可以从镜像中重新生成Docker映像,则为最佳;如果Docker映像在没有网络连接(包括cordova平台rm/add…)的情况下工作正常,那就差一秒了

不幸的是,依赖项的数量(包括依赖项的依赖项等)是巨大的,更糟糕的是,有许多完全不同类型的包使用不同的包管理系统

我知道的一些事情:

  • npm软件包->package.json中的列表,安装在node_modules/中,从npmjs.com下载
  • cordova平台->config.xml中的列表,安装在平台/(来自npm?)
  • cordova plugins->config.xml中的列表,安装在plugins/(来自npm?)中
  • 格拉德尔?从
  • 托盘包装
  • maven软件包
  • 对于Android平台工具、构建工具等,使用tools/bin/sdkmanager从下载
  • 对于iOS-Xcode和其他一些东西
我怎样才能掌握所有这些?这是一个已经解决的问题(如何解决)


似乎每个关心版本控制但想使用Javascript/节点类型工具的人都需要解决这个问题;但是,似乎几乎完全没有关于它的文档。

如果您使用docker,图像仍然会被锁定。不应自动更新任何内容。如果您打算再次进行docker生成,请使用特定的版本标记,而不是最新的。@Keith-True,docker映像已锁定;但是,如果没有网络,有太多操作会触发自动更新并失败。我只是想在没有任何网络的假设下运行构建;对于任何依赖项(如cordova add plugin…),我想从一个文件中解析它,如果该文件不存在,则会失败。因此,您希望再次进行docker构建,但您可能无法访问网络。在这种情况下,您可以设置个人注册表服务器。您可以使用很多注册表服务器,有些是特定的。例如,docker本身有一个用于其注册表的映像。但也有一些注册服务器可以为npm等做多个注册。私有注册服务器也可以作为缓存,所以也有好处。