Так как я не хотел, чтобы в будущем меняли код для добавления нового языка (я полагаю, подход дружественный к DevOps!), Я закончил писать скрипт оболочки (который будет использовать DevOps):
for arg; do \
echo "Building for $arg"
ng build --output-path $PROJECT_ROOT/public/$arg \
--aot \
--prod \
--base-href /$arg/ \
--i18n-file $LANGUAGE_ASSETS_DIR/i18n/$arg.xlf \
--i18n-format xlf \
--i18n-locale $arg & \
done
wait
затем добавил задачу i18n npm:
"build:i18n": "bash $PROJECT_ROOT/i18n.sh $LANGS",
и:
LANGS= en de fr ...
амперсанд в конце команды ng build создает новые процессы, что делает его параллельным. Мне удалось улучшить время сборки на 60%.
Таким образом, все, что нужно DevOps для добавления поддержки нового языка, - это добавить файл xlf перевода в ресурсы (который в нашем случае размещается отдельно в корзине AWS S3), а затем обновить переменную среды LANGS с новым языковым стандартом. и, наконец, вызвать задачу сборки (без изменения кода).
РЕДАКТИРОВАТЬ:
Также необходимо добавить команду wait в конце цикла for, чтобы дождаться завершения всех задач.