【问题标题】:npm Azure Artifacts feed doesn't install all dependencies from upstream sourcenpm Azure Artifacts 提要不会从上游源安装所有依赖项
【发布时间】:2021-03-21 23:36:12
【问题描述】:

尝试使用私有 npm 注册表为我工作的地方设置概念验证,以限制开发人员可以下载的包。我在 Azure Artifacts 上设置了一个提要,并将官方 npm 注册表 (https://registry.npmjs.org) 设置为唯一的上游源。此提要在 npmrc 文件中设置为注册表,并且项目正确地将其标识为注册表源。 (根据npm config get registry)。

当用户(有权从上游安装)尝试从空提要安装包时,它会正确安装包(来自上游)及其所有依赖项。它还将包保存到 Artifacts 提要中,但只有 部分 的依赖项保存到提要中。它保存了哪些依赖项似乎没有押韵或原因,因为几乎每次我安装相同的包时它都会改变。

当无权从上游源安装的用户尝试安装相同的包时,它在未保存的依赖项之一上失败,为工件提要提供 404 错误,说明该包在注册表中找不到。

我已经设置了很多不同的提要,包括项目范围和组织范围,以查看我是否可能设置了错误的设置/设置了错误,但是我设置的每个提要都有相同的行为.

是否有确定是否下载依赖项的特定标准,有没有办法可以在从上游安装包时将所有依赖项保存到提要?

【问题讨论】:

    标签: azure npm azure-devops


    【解决方案1】:

    是否有确定是否下载依赖项的特定标准

    npm 有一个local cache。您需要在测试之前运行npm cache clean。否则,无法保证会下载该软件包。它可以从缓存中安装。

    有没有一种方法可以让我在从上游安装包时将所有依赖项保存到提要中?

    我想您可以尝试禁用缓存,但这可能会大大延长您的用户的安装时间。您可能只想在测试时这样做。也就是说,有各种有点老套的方法可以更永久地做到这一点。您可以使用force config option,但这有其他副作用。我想您可以将缓存设置为/dev/null 或类似的东西,尽管我从未尝试过。在提供给"Disable npm cache" Stackoverflow 问题的答案中还有其他想法。

    【讨论】:

    • 在尝试安装之前清理缓存修复了我的问题。我确实必须使用强制标志才能为其他好奇的人工作。感谢您的帮助!
    猜你喜欢
    • 2020-03-16
    • 2023-03-21
    • 2015-07-25
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 2020-05-13
    相关资源
    最近更新 更多