Size: a a a

2021 May 12

Вт

Ві тя in Frontend UA
Наразі Цікаво дякую
источник

EO

Eugene Obrezkov in Frontend UA
Осталось тебе из корня монорепы убрать конфиги и перенести в пакеты и ты будешь близок к тому, чтобы воспроизвести проблемы
источник

AR

Alexey Raspopov in Frontend UA
зачем их выносить в пакеты?
источник

EO

Eugene Obrezkov in Frontend UA
Чтобы можно было через sparse checkout собирать отдельно взятые пакеты. Для этого они должны быть независимы от монорепы и в любой момент быть готовым собраться вне её
источник

EO

Eugene Obrezkov in Frontend UA
Так то и я могу всю монорепу интерпретировать как один большой проект и собирать как монолит - проблем не будет никаких
источник

EO

Eugene Obrezkov in Frontend UA
Особенно, когда 2 пакета в ней, а не 400+ 🤷‍♂️
источник

AR

Alexey Raspopov in Frontend UA
что мешает делать sparse checkout корня + нужного пекеджа?
источник

EO

Eugene Obrezkov in Frontend UA
Это не решает другую проблему - транзитивные зависимости

Это решит проблему частичной сборки, если что
источник

EO

Eugene Obrezkov in Frontend UA
Тот же eslint очень привередлив к тому, где что лежит
источник

EO

Eugene Obrezkov in Frontend UA
И почти весь его resolution построен на предположении что транзитивные зависимости доступны. Расширение для VSCode аналогично работает.
источник

EO

Eugene Obrezkov in Frontend UA
Весь сетап с изоляцией, что конфиги лежат внутри проектов и всё остальное, позволяет собирать пакеты по отдельности, при необходимости.

Все инструменты прекрасно работают и интегрируются с редактором. И только eslint выделывается :(
источник

AR

Alexey Raspopov in Frontend UA
это всё решаемые проблемы
источник

AR

Alexey Raspopov in Frontend UA
я всего-то хотел npm workspaces попробовать
источник

AR

Alexey Raspopov in Frontend UA
они работают через симлинк в node_modules
источник

EO

Eugene Obrezkov in Frontend UA
Подразумевается node_modules в корне репозитория, который загрязняет область видимых модулей для самих проектов.
источник

AR

Alexey Raspopov in Frontend UA
это решает много проблем с инструментами
источник

EO

Eugene Obrezkov in Frontend UA
А я что-то против говорил?
источник

EO

Eugene Obrezkov in Frontend UA
Я тебе о том, что «у вас выдуманные проблемы» это пока у тебя npm workspaces и два проекта (образно говоря)
источник

EO

Eugene Obrezkov in Frontend UA
Всё это отлично работает на воркспейсах, насколько я знаю, но они не совсем подходят для больших монореп. Там другие проблемы начинаются.

И монорепы которые воркспейсы и монорепы которые rush/lerna/etc это разные монорепы
источник
2021 May 13

AR

Alexey Raspopov in Frontend UA
у меня есть пара идей, могу дополнить пример
источник