使用本地文件系统复制 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的主要内容,如果未能解决你的问题,请参考以下文章