【问题标题】:Improving Azure DevOps npm build speed?提高 Azure DevOps npm 构建速度?
【发布时间】:2019-11-21 02:20:47
【问题描述】:

如何“经济地”提高 Azure DevOps 中的 npm 构建速度?它们比我的本地机器上花费的时间长 3 倍。我正在使用免费套餐。我已经读到我们应该能够以某种方式缓存 npm 模块,但我找不到一个很好的例子(并且不清楚这种能力是否需要私人构建服务器或付费 DevOps 或两者兼而有之?)。

有人成功做到这一点吗?如果是这样,您能告诉我 yaml 并解释模块缓存将保存在哪里吗?

【问题讨论】:

    标签: npm azure-devops azure-pipelines


    【解决方案1】:

    如果您想要缓存 NPM 模块,则需要使用私有代理。您会自动获得它,因为私有代理会在构建之间缓存所有内容。

    其他一些选项:

    • 使用 NPM 的上游源设置工件提要可能会有所帮助,因为包将缓存在工件提要中,从网络角度来看,这与托管代理“更接近”,并且可能会更快地恢复。李>
    • 您可以将node_modules 放入源代码控制中,这不是一个很好的选择,因为它的大小和频率会随其变化。

    【讨论】:

    • 感谢您的回复!私人代理基本上是我提供的虚拟机吗?这就是我遇到 IT 反对的地方,因为他们说足够的 Windows VM 每年大约需要 8000 美元。
    【解决方案2】:

    我的答案实际上是建立在 @daniel-mann 的原点之上 - 你想要一个 Self-hosted 代理。

    恕我直言,8000 美元/年对于有效构建服务器来说似乎是一个非常极端的数字,但它最终取决于构建吞吐量。

    您的评论部分正确 - 代理在机器(VM/裸机/等)上作为进程/服务运行。可以直接从 Azure DevOps 集合设置中的设置下载代理,并提供安装和配置步骤。

    您可以仔细检查 LinuxmacOSWindows 代理的先决条件。

    此外,为了避免构建/发布瓶颈(因为它们使用相同的代理),您可以配置多个代理(系统资源允许)。从屏幕截图中可以看出,我们有 4 个非常适合我们。

    【讨论】:

    • 这很有帮助。他们确实提到了“突发”服务器是一种选择并且会更少,但他们听起来并没有减少很多。感谢您的信息!
    猜你喜欢
    • 2021-12-09
    • 2018-01-19
    • 2020-12-05
    • 2021-07-26
    • 2020-03-10
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2019-09-27
    相关资源
    最近更新 更多