Size: a a a

JavaScript — русскоговорящее сообщество

2020 March 30

ГЗ

Григорий Зданович in JavaScript — русскоговорящее сообщество
Ребзи, всем привет,
был ли у кого-то опыт создания проектов по типу моно-репозиториев
когда одна папка, это само приложение, а вторая папка это должен быть еще один git проект, который должен быть всегда актуальной версии
собственно вопрос:
есть ли какие-то инструменты для оптимизации подобного процесса?
ибо с теми же сам-модулями гита, есть сложности в подключении
источник

AI

Anton Ignatev in JavaScript — русскоговорящее сообщество
Григорий Зданович
Ребзи, всем привет,
был ли у кого-то опыт создания проектов по типу моно-репозиториев
когда одна папка, это само приложение, а вторая папка это должен быть еще один git проект, который должен быть всегда актуальной версии
собственно вопрос:
есть ли какие-то инструменты для оптимизации подобного процесса?
ибо с теми же сам-модулями гита, есть сложности в подключении
Git subtree посмотри
источник

ГЗ

Григорий Зданович in JavaScript — русскоговорящее сообщество
Anton Ignatev
Git subtree посмотри
спасибо, почитаю, а про lerna слышал/юзал?
источник

AI

Anton Ignatev in JavaScript — русскоговорящее сообщество
Да, тоже довольно полезная штука

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

Subtree избавит от необходимости релизить версии, но при этом у тебя не будет версионирования, однако код будет также жить в отдельном репо

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

Как-то так
источник

AI

Anton Ignatev in JavaScript — русскоговорящее сообщество
А, и еще в рамках Subtree изменения можно будет делать в рамках того сервиса, в который включен этот Subtree, и потом пушить эти изменения в репозиторий Subtree

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

ГЗ

Григорий Зданович in JavaScript — русскоговорящее сообщество
Спасибо большое за подробный разбор, именно это и искал)
вопрос тогда еще про private NPM, Я же правильно понимаю, что его стоимость 7$ в месяц на команду? иль там есть еще какие-то другие тарифы?
просто имеет ли смысл париться над git subtree и lerna, если можно получить хорошую структуру и удобство за 7 баксов
источник

AI

Anton Ignatev in JavaScript — русскоговорящее сообщество
Григорий Зданович
Спасибо большое за подробный разбор, именно это и искал)
вопрос тогда еще про private NPM, Я же правильно понимаю, что его стоимость 7$ в месяц на команду? иль там есть еще какие-то другие тарифы?
просто имеет ли смысл париться над git subtree и lerna, если можно получить хорошую структуру и удобство за 7 баксов
Мы не пользуемся офциальным npm'ом для приватных репо, т.к. есть возможность поднять свой за бесплатно на своих серверах

Самый простой вариант это что-то вроде этого:
https://github.com/verdaccio/verdaccio

Но у нас идет более продвинутый репозиторий, который позволяет хостить не только нпм пакеты, но также композеровские для пхп и докер контейнеры
https://www.sonatype.com/nexus-repository-oss
источник

AI

Anton Ignatev in JavaScript — русскоговорящее сообщество
Григорий Зданович
Спасибо большое за подробный разбор, именно это и искал)
вопрос тогда еще про private NPM, Я же правильно понимаю, что его стоимость 7$ в месяц на команду? иль там есть еще какие-то другие тарифы?
просто имеет ли смысл париться над git subtree и lerna, если можно получить хорошую структуру и удобство за 7 баксов
Если выбирать между Subtree и сборкой пакетов, я бы выбрал сборку

Если же смотреть между сборкой и лерной, то здесь надо уже брать во внимание сроки и трудозатраты

Скажем, если надо быстро-быстро сделать один проект, но при этом заложить в основу переиспользуемый uikit, который затем можно было бы использовать для другого проекта, то лучше брать лерну, т.к. не надо будет выкатывать 100 версий при разработке первого проекта, но если понадобится - можно будет вынести

Но если нет опыта в сборке пакетов, то лучше тогда воздержаться от лерны, научиться настраивать сборку, пройдя 7 кругов ада с различными бандлерами, tree shaking'ом и тд, и потом уже с этим опытом подключать лерну

Иначе рискуете на лерне сделать пакеты так, что их потом без кучи рефакторинга не вынести в отдельные репозитории
источник

🦜

🦜 in JavaScript — русскоговорящее сообщество
Anton Ignatev
Если выбирать между Subtree и сборкой пакетов, я бы выбрал сборку

Если же смотреть между сборкой и лерной, то здесь надо уже брать во внимание сроки и трудозатраты

Скажем, если надо быстро-быстро сделать один проект, но при этом заложить в основу переиспользуемый uikit, который затем можно было бы использовать для другого проекта, то лучше брать лерну, т.к. не надо будет выкатывать 100 версий при разработке первого проекта, но если понадобится - можно будет вынести

Но если нет опыта в сборке пакетов, то лучше тогда воздержаться от лерны, научиться настраивать сборку, пройдя 7 кругов ада с различными бандлерами, tree shaking'ом и тд, и потом уже с этим опытом подключать лерну

Иначе рискуете на лерне сделать пакеты так, что их потом без кучи рефакторинга не вынести в отдельные репозитории
Причем тут лерна и сборка юикита?
источник

🦜

🦜 in JavaScript — русскоговорящее сообщество
как менеджер монорепозиториев влияет на сборку юикита?
источник

AI

Anton Ignatev in JavaScript — русскоговорящее сообщество
Так, что первоначально лерна подразумевает, что пакеты будут собираться и релизиться

Для приватных проектов это может не понадобиться, т.к. можно собирать только сам сервис, и в этом случае можно настроить CI на линках

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

ГЗ

Григорий Зданович in JavaScript — русскоговорящее сообщество
спасибо еще раз большое, думаю пойду посмотрю пока в сторону verdaccio, все-таки думаю, вводить в команду в данный процесс будет проще, если работа продолжиться  в условиях работы с пакетами
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Dmitry Petrik
Привыкай. Сейчас работодатели смекнут что можно за офисы то и не платить и большинство на удаленку перейдут)
У нас тут в правительстве начали буянить по этому поводу, что крупные компании тоже хотят прекратить платить за аренду во время полного хомоффиса сотрудников
источник

DP

Dmitry Petrik in JavaScript — русскоговорящее сообщество
Chadwick ☭
У нас тут в правительстве начали буянить по этому поводу, что крупные компании тоже хотят прекратить платить за аренду во время полного хомоффиса сотрудников
Хотеть не вредно) Не платите - идите на улицу
источник

DP

Dmitry Petrik in JavaScript — русскоговорящее сообщество
Да по любому многие привычные для нас вещи изменятся из за этой пандемии
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
В ноябре 2019 г. мейнтейнер небезызвестной библиотеки core-js Денис Пушкарев проиграл апелляцию на приговор на 18 месяцев тюрьмы за то, что в ходе движения на мотоцикле он совершил наезд на двух пешеходов, один из которых впоследствии скончался.


Грядут большие перемены...
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Мейнтейнер популярнейшей JS-библиотеки приговорен к тюремному заключению за смертельное ДТП по его вине
https://habr.com/ru/post/494732/
источник

DV

Default Voiceб 🔥 in JavaScript — русскоговорящее сообщество
Уже всё разрулили, у проекта теперь другие мейнтейнеры
источник

DV

Default Voiceб 🔥 in JavaScript — русскоговорящее сообщество
источник

🦜

🦜 in JavaScript — русскоговорящее сообщество
Default Voiceб 🔥
Уже всё разрулили, у проекта теперь другие мейнтейнеры
норм
источник