Я немного n00b, когда дело доходит до nodejs npm, но после его внедрения в нашей среде сборки с использованием шагов, рекомендованных в нескольких статьях, утроилось наше время сборки.
Мы используем его для стандартных материалов (minify/concat/etc js/css/etc)
Мы используем TeamCity и добавили шаг Node.js NPM, затем шаг gulp для выполнения задач (RE: https://github.com/jonnyzzz/TeamCity.Node)
Задача по настройке NPM занимает больше времени, 2 мин. 10 секунд, что составляет более 65% от общего времени сборки, вызывающего команду "npm install" , которая, как представляется, повторно загружает все пакеты в каждой сборке
Шаг 3/7: Настройка NPM (Node.js NPM) (2 м: 10 с)
[npm install] Запуск: cmd/c npm install
Общее время сборки до было около 1 мин 30 сек, включая модульные тесты.
так или иначе, нужно кэшировать эти локальные файлы и предотвращать повторную загрузку в каждой сборке? в профиле пользователя или что-то, возможно, в отличие от папки сборки?
Подробнее..
Это, вероятно, лучше всего объясняет настройку http://www.dotnetcurry.com/visualstudio/1096/using-grunt-gulp-bower-visual-studio-2013-2015
У нас есть проекты С#, которые используют новый проводник запуска задач, Зависимости сохраняются в package.json, вы предварительно запускаете "npm install" один раз в своей локальной среде в вашей рабочей области (нужно использовать .tfignore для предотвращения его проверки в исходный код), а затем снова, если вы не запустите новое локальное рабочее пространство.
При запуске сборки ему нужно запустить "npm install" из командной строки, и он забирает зависимости из файла package.json и каждый раз устанавливает их в подпапку внутри рабочего каталога сборки, даже если файлы уже есть из предыдущей сборки (т.е. агент TC не очистил их), afaik вы не можете установить их за пределы рабочей папки.
Я мог ошибаться... Или я должен сказать, что надеюсь, что ошибаюсь, и ищу способ для gulp, чтобы поддержать это, но каким бы способом мы его работаем, не нужно работать с проводником задач runner поэтому опыт F5 для разработчика все тот же на локальном.
У нас есть несколько агентов да.