В вашей ситуации с монорепозиторием, где необходимо изменить ссылки на библиотеки при работе с Yarn, можно рассмотреть несколько подходов, чтобы избежать использования "костылей" и улучшить управляемость сборки:
1. **Использование Yarn Workspaces**: Если вы еще не используете Yarn Workspaces, это может быть хорошим вариантом. Workspaces позволяют управлять несколькими пакетами внутри одного репозитория, и пакеты могут ссылаться друг на друга как на обычные зависимости. Это может автоматизировать некоторые процессы и уменьшить количество ручных действий.
2. **Настройка скриптов сборки**: Вы можете настроить скрипты в `package.json`, чтобы запускать все необходимые команды при установке (например, копирование бинарников в нужное место) или выполнять другие действия. Например, можно добавить команду в `postinstall`, чтобы гарантировать, что необходимые бинарники будут скопированы или созданы после установки.
3. **Пользовательские сборочные скрипты**: Если какие-либо библиотеки требуют особой обработки, можно написать пользовательские скрипты, которые будут выполнять необходимые команды, если детали сборки будут изменяться. Эти скрипты могут использоваться в CI/CD пайпе для автоматического выполнения после установки.
4. **Параметры разрешения (resolutions)**: Если зависимости требуют конкретной версии библиотек, можно использовать секцию `resolutions` в `package.json`, чтобы указать версии, которые необходимы для вашего проекта. Это может помочь избежать конфликта версий и других проблем.
5. **Использование `yarn link`**: Если необходимо работать с локальной копией библиотеки и избежать публикации, можно использовать команду `yarn link` для создания символической ссылки на локальную версию библиотеки. Это может быть полезно, если вы разрабатываете библиотеку параллельно с приложением.
6. **Проверка на наличие бетч-скриптов**: Убедитесь, что в ваших библиотеках нет сценариев, которые могут вызывать ошибку зависимости. Возможно, потребуется модифицировать или отключить некоторые скрипты, которые вызывают проблемы.
7. **Проверка конфигурации сборки**: Обратите внимание на конфигурацию вашего сборочного инструмента. Возможно, некоторые параметры или плагины требуют доработки, чтобы учесть бинарники и различные зависимости в монорепозитории.
Если описанные методы не сработают, рекомендуется подробно изучить логи сборки и ошибки, чтобы выявить точное место возникновения проблемы. Это поможет понять, на каком этапе происходит сбой и как можно его минимизировать или устранить.