Кэшируйте npm install Task в VSTS - PullRequest
0 голосов
/ 01 октября 2018

Я настроил частного агента в VSTS и установил NPM там глобально.Когда я пытаюсь установить NPM с помощью своей задачи сборки, он по-прежнему устанавливает пакеты NPM для каждой сборки, которая занимает очень много времени - примерно 12 минут.

Как я могу кэшировать установки NPM, чтобывремя сборки сокращается?

Ответы [ 3 ]

0 голосов
/ 02 октября 2018

Мы используем npm-cache , npm-cache - это модуль узла, который будет вычислять хеш вашего файла package.json для каждого хеша, который создаст zip-папку на вашем сервере сборки с содержимым node_modules, теперь установка npm сводится к извлечению zip-файла при каждой сборке (конечно, только в том случае, если вы фактически не меняли package.json).

Идея такова: в первый раз инструмент загружал пакеты npmи сохранить их локально, во второй раз, если package.json не изменился, он берет пакеты с локального диска и копирует их в папку агента сборки, только если измененный package.json загружает пакеты из Интернета.

  1. Установите npm-кэш на компьютере сборки:

    npm install npm-cache -g

  2. В определении сборки добавьте задачу командной строки (Инструмент: C:\Windows\User\AppData\Roaming\npm\npm-cache (или просто npm-cache, если вы добавляете инструмент в переменные пути среды); Аргументы: install npm; Рабочая папка: $(Build.SourcesDirectory) (или где package.json находится).

0 голосов
/ 28 июля 2019

MS наконец-то реализовала эту функцию (в настоящее время в бета-версии) https://docs.microsoft.com/en-us/azure/devops/pipelines/caching/index?view=azure-devops#npm

Оттуда:

variables:
  npm_config_cache: $(Pipeline.Workspace)/.npm

steps:
- task: CacheBeta@0
  inputs:
    key: $(Build.SourcesDirectory)/package-lock.json
    path: $(npm_config_cache)
  displayName: Cache npm

- script: npm ci
0 голосов
/ 02 октября 2018

К сожалению, мы не можем кэшировать установки NPM, так как пока нет такой встроенной функции.

Однако уже есть голос пользователя, предложившего эту функцию: Повышение производительности размещенного агента сборки с помощью кэшей сборки , и, похоже, команда VSTS сейчас активно работает над этим ...

На данный момент вы можете попробовать ускорить установку NPM в Visual Studio Team Services

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...