GitHub Actions: кеш npm через setup-node
Чтобы повторные сборки не загружали npm-зависимости заново, включите кеш в actions/setup-node. Ключ строится по lock-файлу; после его изменения GitHub создаст отдельный кеш для нового набора зависимостей.
Рабочий пример
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: frontend/package-lock.json
- run: npm ci --prefix frontend
- run: npm test --prefix frontendcache: npm сохраняет npm download cache, а не node_modules. Зависимости всё равно устанавливаются через npm ci, который использует lock-файл и воспроизводит точные версии.
Частый вопрос
Нужно ли отдельно кешировать node_modules?
Обычно нет: npm cache вместе с npm ci проще и переносимее. Отдельный node_modules cache может переносить платформенно-зависимые бинарные файлы.