Size: a a a

2020 November 14

R🔘

Roman 🔘 in Frontend UA
@ghaiklor есть пара вопросов по рашу, буду очень признателен за помощь

* как подружить rush с webstorm? webstorm не резолвит типы и зависимости
* rush странно симлинки создает, выборочно, в саб репе не все дефиниции типов например залинковал
* webpack с ts-loader не репортирт про ошибки и тоже не может зарезолвить дефиниции типов, тк симлинки не для всех зависимостей создаются
источник

R🔘

Roman 🔘 in Frontend UA
И если есть какая то методолгия выбора, я взял rushjs, но потом увидел что есть rushjs с обвесами(rushstack). Как выбрать, что лучше подходит?
источник

R🔘

Roman 🔘 in Frontend UA
Допускаю что это уже обсуждалось, если да, то киньше линкой плз в сообщение где это началось
источник

R🔘

Roman 🔘 in Frontend UA
Спасибо
источник

EO

Eugene Obrezkov in Frontend UA
Roman 🔘
@ghaiklor есть пара вопросов по рашу, буду очень признателен за помощь

* как подружить rush с webstorm? webstorm не резолвит типы и зависимости
* rush странно симлинки создает, выборочно, в саб репе не все дефиниции типов например залинковал
* webpack с ts-loader не репортирт про ошибки и тоже не может зарезолвить дефиниции типов, тк симлинки не для всех зависимостей создаются
На все три пункта один ответ - транзитивные зависимости.

Вот есть у вас в зависимостях express, а в коде вы ещё и ajs импортируете, например (ajs - это зависимость express, не ваша). В случае с npm или yarn, вы сможете использовать эту зависимость и никакой ошибки не будет. Ошибка у вас будет, когда express решит убрать ajs у себя или обновить версию и т.д. А так как ваш код работает с ajs, который не вы контроллируете, а express, то у вас на ровном месте без изменения кода будут начинать вылезать бока и начинаются ночные дебаги. pnpm решает эту проблему так, как это решал когда-то ещё нормальный (царствие ему небесное) npm до третьей версии.

Потом навалилась толпа недоинженеров, которые начали клепать кучу пакетов исходя из flawed assumption, который npm навязал всем "абсолютно все зависимости доступны всегда, даже если вы их не просили"

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

EO

Eugene Obrezkov in Frontend UA
Roman 🔘
И если есть какая то методолгия выбора, я взял rushjs, но потом увидел что есть rushjs с обвесами(rushstack). Как выбрать, что лучше подходит?
я не использовал их обвес, только rush для монорепы и мои билд процессы вокруг
если хочется чего-то из коробки, то можно глянуть на heft, они недавно сделали
источник

EO

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

EO

Eugene Obrezkov in Frontend UA
мы его используем, потому что у нас огромное количество кода, пишем сервер на ноде (не браузер), транзитивные зависимости это вообще головная боль (жаль, мало кто это понимает) и так далее. У нас банально установка зависимостей на лерне + нпм могла идти 20 минут и это было проблемой. Билды и тесты аналогично, мы могли по несколько часов ждать билда.
источник

EO

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

EO

Eugene Obrezkov in Frontend UA
если у вас 3 пакета и 2 приложения, то я бы не стал мучаться и просто взял лерну с пнпм и не делал в ней hoisting, пусть ставит всё внутрь и не шарит между
источник

DZ

Dmitry Zherebko in Frontend UA
Eugene Obrezkov
мы его используем, потому что у нас огромное количество кода, пишем сервер на ноде (не браузер), транзитивные зависимости это вообще головная боль (жаль, мало кто это понимает) и так далее. У нас банально установка зависимостей на лерне + нпм могла идти 20 минут и это было проблемой. Билды и тесты аналогично, мы могли по несколько часов ждать билда.
А огромное это сколько?
источник

EO

Eugene Obrezkov in Frontend UA
Dmitry Zherebko
А огромное это сколько?
сколько чего?
источник

DZ

Dmitry Zherebko in Frontend UA
«Огромное количество кода»
источник

EO

Eugene Obrezkov in Frontend UA
Dmitry Zherebko
«Огромное количество кода»
по грубым подсчетам около 1,500 разных пакетов, включая third-party
источник

DZ

Dmitry Zherebko in Frontend UA
Eugene Obrezkov
по грубым подсчетам около 1,500 разных пакетов, включая third-party
Интересно а в строках кода сколько?
источник

EO

Eugene Obrezkov in Frontend UA
))
источник

DZ

Dmitry Zherebko in Frontend UA
И что это за область?
источник

DZ

Dmitry Zherebko in Frontend UA
Где вот столько пакетов надо?
источник

EO

Eugene Obrezkov in Frontend UA
Dmitry Zherebko
Интересно а в строках кода сколько?
sloc это очень странная метрика, если честно
источник

EO

Eugene Obrezkov in Frontend UA
Dmitry Zherebko
И что это за область?
ну... можно сказать что это внутренний фреймворк компании, на котором все node сервисы пишутся и мы сейчас на их основе пишем ещё один
источник