gpt4 book ai didi

android - NPM 缓存步骤在 Azure DevOps 中不起作用

转载 作者:行者123 更新时间:2023-12-04 23:41:32 27 4
gpt4 key购买 nike

我按照 Microsoft 的以下文档为我尝试在 azure 中构建的 Android 应用程序配置 npm 缓存步骤,我使用的是 package.json,而不是 package.json-Lock。

https://learn.microsoft.com/en-us/azure/devops/pipelines/release/caching?view=azure-devops#nodejsnpm

我能够在缓存后步骤中上传缓存依赖文件,并在第二次运行管道时在开始时正确上传该文件,但即使在工作区中下载 npm 缓存数据之后,npm 安装步骤也是如此仍在调用远程库并下载远程依赖项。

我还尝试运行npm install --prefer-offline来完成npm安装步骤,但确实有效。如果我还缺少任何内容,请告诉我。

谢谢。

最佳答案

使用Cache任务来缓存应用程序的node_modules文件夹。使用缓存命中变量(cacheHitVar)来存储缓存恢复的结果。当缓存恢复(缓存命中)时,它将设置为 true,否则设置为 false

然后为安装依赖项的任务使用一个条件(例如 npm ci)。仅在缓存未命中时安装它们。

steps:
- task: Cache@2
displayName: Cache node_modules
inputs:
key: 'npm | "$(Agent.OS)" | $(Build.SourcesDirectory)/package-lock.json'
path: $(Build.SourcesDirectory)/node_modules
cacheHitVar: CACHE_RESTORED

- task: Npm@1
displayName: 'Install the dependencies'
inputs:
command: custom
verbose: false
customCommand: 'ci'
condition: ne(variables.CACHE_RESTORED, 'true')

当缓存成功恢复后,您将在管道执行中看到以下输出。

Azure Pipeline Execution

关于android - NPM 缓存步骤在 Azure DevOps 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61373634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com