Azure devops 如何在Azure管道中缓存目录内容,并在package.json文件更改等情况下使其无效?

Azure devops 如何在Azure管道中缓存目录内容,并在package.json文件更改等情况下使其无效?,azure-devops,azure-pipelines,azure-pipelines-build-task,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,例如,除非package.json发生更改,否则缓存node\u模块的内容 AppVeyor支持这一点,因为它知道package.json已更改,并将使其缓存的node\u modules文件夹失效,该文件夹将复制到VM构建工作区。现在可以通过使用缓存任务来实现这一点。可以找到更多信息(它也有许多著名应用的示例),但一般情况下是这样的: 或者在亚马尔 steps: - task: Cache@2 displayName: 'Cache npm' inputs: key: 'np

例如,除非
package.json
发生更改,否则缓存
node\u模块的内容


AppVeyor支持这一点,因为它知道
package.json
已更改,并将使其缓存的
node\u modules
文件夹失效,该文件夹将复制到VM构建工作区。

现在可以通过使用
缓存
任务来实现这一点。可以找到更多信息(它也有许多著名应用的示例),但一般情况下是这样的:

或者在亚马尔

steps:
- task: Cache@2
  displayName: 'Cache npm'
  inputs:
    key: 'npm | "$(Agent.OS)" | package.json'
    path: '$(npm_config_cache)'
其思想是指定一个缓存键,可以是字符串或文件内容(正是您所要求的)以及缓存路径。您不需要单独的恢复任务,这项任务可以双向工作


请注意,对于这个示例,您还应该定义
npm\u config\u cache
环境变量。

“我们正在积极研究Azure管道的构建缓存解决方案,我们已经完成了一些初步设计工作,希望在新的一年里开始工作。”