Как стать автором
Обновить

Комментарии 14

НЛО прилетело и опубликовало эту надпись здесь

Если вы имеете в виду хранить библиотеки с проектом в составе монорепы, то, например, в нашем случае, когда проекты небольшие и за год их делается по несколько десятков, не очень удобно собирать монорепу для каждого из них, проще всё же подключать библиотеки. Плюс удобнее вносить изменения сразу в несколько разных проектов, просто подтянув новую версию либы. Для одного большого проекта с разными либами, да, монорепа будет удобнее

НЛО прилетело и опубликовало эту надпись здесь

В проектах либы подтягиваются из нексуса, но если стоит задача изменить код самой библиотеки, то линкуем к какому-нибудь проекту, чтобы можно было сразу проверить изменения в нем без необходимости лишних публикаций

yalc попробуйте, я с ним проблем не знаю, очень удобно. https://github.com/wclr/yalc

за рекомендацию спасибо, поглядим

Эточё, гайд по использованию символических ссылок?

А зачем тут yarn?

yarn, а не дефолтный симлинк, как минимум потому, что это кроссплатформенно и более удобно, так как создается глобальная ссылка, которую можно подключить в любом другом проекте

Не совсем понял, для чего создавать и удалять глобальную ссылку на библиотеку, если можно просто указать путь до папки с библиотекой относительно папки текущего проекта.

Если имеется в виду положить папку с библиотекой рядом с проектом и обращаться к ней без симлинка, то будет долго и неудобно во всех файлах проекта в импортах менять пути с обращения к установленной библиотеке на пути к папке с измененной библиотекой (условно, import smth from "@lib" заменять на import smth from "../../../@lib"). Кажется, что придется, например, вносить эту папку с либой в исключения для линтеров и тайпскрипта

А зачем этим заниматься, если можно алиасы настроить?

Тогда нужно менять код в каждом проекте, где мы захотим отладить библиотеку. Кажется, что проще использовать специальную команду в yarn. Но, впрочем, я всё равно не так поняла выше

Не, я про выполнение пункта 3 и линковку библиотеки через yarn link "@ktsstudio/test-library". Можно сделать "yarn add @ktsstudio/test-library@link:путь_до_папки_с_test_library_относительно_текущей_папки" и оно прекрасно будет работать, даже hot reload на изменения в test_library будет реагировать. Потом отменяете изменения в package.json и yarn.lock, указываете нужную версию библиотеки test_library, запускаете yarn install (или просто yarn), получаете ошибки из-за линковки, еще раз запускаете yarn install и библиотека нормально встает из пакета

Хм интересно, особенно про hot reload, надо будет попробовать. Хотя, если хочется линковать сразу несколько проектов, то нужно в каждом ещё подумать, какой нужен относительный путь. Но это уже, возможно, мелочи. В целом как будто да, тоже рабочий вариант, спасибо!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий