【问题标题】:Trying to cache npm installs between builds on Azure Devops尝试在 Azure Devops 上的构建之间缓存 npm 安装
【发布时间】:2021-08-25 05:19:57
【问题描述】:

我正在尝试将我的管道配置为在构建之间缓存 npm。 我的 pipeline.yml 是这样的

variables:
  npm_config_cache: $(Pipeline.Workspace)/.npm
  
trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:

- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js'

- task: Cache@2
  inputs:
    key: 'npm | "$(Agent.OS)" | package-lock.json'
    path: '$(npm_config_cache)'
    cacheHitVar: 'CACHE_RESTORED'
    restoreKeys: 'npm | "$(Agent.OS)"'
  displayName: 'Cache npm'

- task: Npm@1
  condition: ne(variables.CACHE_RESTORED, 'true')
  inputs:
    command: 'install'

- task: Npm@1
  inputs:
    command: 'custom'
    customCommand: 'run lint'
  displayName: 'Lint checking'

这工作正常,直到 npm run lint 然后它失败。 但是找到缓存键并恢复缓存。 条件行的计算结果为 false,这也是正确的。

如果我强制 npm 安装,那么 lint 行会起作用。

你知道恢复缓存和强制安装 npm 有什么区别吗?

或者对如何让它发挥作用的任何想法?

【问题讨论】:

  • “失败”怎么办?给出错误?什么错误?在寻求帮助时,您需要提供尽可能多的具体详细信息。发布错误日志。

标签: npm azure-devops npm-install


【解决方案1】:

感谢您的提示 - 我应该更具体一些。 基本上,这不适用于尝试此操作的其他任何人。 这不是缓存 npm install 的方法 :) 在构建之间似乎不是一个好方法。 您可以缓存 .npm 文件夹,但这并不能真正加快构建速度 - 可能是由于 Azure 缓存 npm 注册表和 Azure 内部的高网络速度

【讨论】:

    【解决方案2】:

    你的问题有点模糊,所以我得到了一个建议。查看管道的变量。看到 system.debug 变量了吗?将其设置为真。现在,Azure 通常会显示更多关于管道中发生的情况的信息。如果 linting 失败,也许您会找到更多信息。现在用这里新发现的诊断来调整你的问题。

    【讨论】:

      猜你喜欢
      • 2020-01-14
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多