使用本地文件系统复制 libman unpkg

Posted

技术标签:

【中文标题】使用本地文件系统复制 libman unpkg【英文标题】:Replicating libman unpkg with a local filesystem 【发布时间】:2021-05-06 20:58:47 【问题描述】:

我注意到我可以使用 libman 以一种很好的方式将许多库下载到我的 Asp.Net Core 应用程序中。例如。我可以轻松获得最新的@microsoft signalr:

但是,在我的应用程序中,我不能依赖外部包源,而是希望将我需要的包存储在我的网络中。 我注意到libman支持“文件系统”模式,所以我将所有从unpkg下载的文件复制到我的本地网络驱动器上,我们称之为“L:”

/ L:
  | local_unpkg
     | @microsoft
       | signalr
         | 5.0.2
           | package.json
           | README.md
           | src
             | ... // a lot of files
           | dist
             | browser
             | cjs
             | esm
             | ... // other subfolders

当我尝试使用“文件系统”提供程序时,我只直接在我指定的文件夹中获取文件,没有嵌套文件夹:

有没有办法以这种方式导入整个包,而无需手动指定 libman.json 文件中的所有子文件夹?

如果不是,当我不想依赖外部包源时,在环境中使用该工具的推荐方法是什么?

【问题讨论】:

据我所知,客户端库管理器是用来管理客户端库的。如果你想知道其他客户端工具来管理客户端库,你可以使用 npm 或其他。 VS中没有其他内置工具来管理客户端库。 对不起,我不明白。这正是我想做的——管理客户端库。我喜欢 libman 的一般工作方式,但在我的系统中还有一个额外的限制,我不能依赖未存储在本地网络中的包。 【参考方案1】:

文件系统提供程序特别不支持递归目录内容。对于其他提供者,包的内容可以通过目录元数据一次性获得。但是对于文件路径,尤其是网络文件路径,迭代文件系统会导致大型(或深度)目录结构的性能极差。在许多情况下,您会输入路径,向导会在您输入时尝试评估内容(例如,一旦您输入L:\,它就会识别该目录并通过网络递归枚举其所有内容)。

【讨论】:

我明白了,这是设计使然。谢谢,有道理。

以上是关于使用本地文件系统复制 libman unpkg的主要内容,如果未能解决你的问题,请参考以下文章

使用 Libman 的 FontAwesome Pro

将文件/块从 HDFS 复制到从节点的本地文件系统

Hbase 导出不会复制到本地文件系统

为啥 libman.json 被创建为“内容”以及为啥它具有“如果较新则复制”属性?

将文件从 s3:// 复制到本地文件系统

如何将文件从 HDFS 复制到本地文件系统