Столкнулся с тем, что на этапе ci/cd проектов часто недоступны те или иные npm реестры. В связи с чем скидал скрипт-переборщик зеркал. #!/bin/bash

#Script to retry npm ci with different mirrors #Usage: ./npm-mirror-retry.sh [npm command] [args...]

set -e

#Array of npm registries to try

REGISTRIES=( "https://npm-mirror.gitverse.ru" "https://registry.npmjs.org/" "https://registry.yarnpkg.com/" "https://registry.npmmirror.com/" )

echo "Attempting npm command with multiple registry mirrors..."

for registry in "${REGISTRIES[@]}"; do echo "Trying registry: $registry"

#Set the registry for this attempt

npm config set registry "$registry"

#Execute the npm command

if npm "$@"; then echo "Success with registry: $registry" exit 0 else echo "Failed with registry: $registry"

#Clear npm cache in case of failure to ensure clean retry

npm cache clean --force || true fi done

echo "All registries failed. Exiting with error." exit 1 Сборки стали дольше, зато шанс недоступности всех четырех зеркал мал.