Size: a a a

2020 November 14

EO

Eugene Obrezkov in Frontend UA
Dmitry Zherebko
Могут дать метрику про места которые стоит отрефакторить
😌
источник

R🔘

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

EO

Eugene Obrezkov in Frontend UA
сами по себе sloc вообще никогда не надо мерять и никогда не использовать как что-то весомое
источник

R🔘

Roman 🔘 in Frontend UA
лерну не хочу из за того что там руками пакеты надо указывать, которые хоистить
источник

EO

Eugene Obrezkov in Frontend UA
Eugene Obrezkov
сами по себе sloc вообще никогда не надо мерять и никогда не использовать как что-то весомое
придёт такой СТО и скажет "господа, мы тут лимит исчерпали, надо куда-то 10,000 строк кода выбросить, выбирайте"
источник

R🔘

Roman 🔘 in Frontend UA
ну и опыт уже есть
источник

EO

Eugene Obrezkov in Frontend UA
Roman 🔘
я как раз хочу разобраться, у меня есть небольшой пет проджет, там пока что пакетов раз в 500 меньше чем у вас, но как плейграунд норм
👍
источник

R🔘

Roman 🔘 in Frontend UA
Eugene Obrezkov
придёт такой СТО и скажет "господа, мы тут лимит исчерпали, надо куда-то 10,000 строк кода выбросить, выбирайте"
дропаем переносы строк сразу, обфускация на старте так сказать
источник

EO

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

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

а начнёте отдельно собирать - боль и страдания
источник

R🔘

Roman 🔘 in Frontend UA
Eugene Obrezkov
На все три пункта один ответ - транзитивные зависимости.

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

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

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

R🔘

Roman 🔘 in Frontend UA
- есть сервер koa
- есть @types/koa тайп дефинише

koa линкуется в пакет
@types/koa нет

но @types/koa есть в common/temp/node_modules

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

R🔘

Roman 🔘 in Frontend UA
если это важно, я юзаю yarn вместо pnpm
источник

R🔘

Roman 🔘 in Frontend UA
Roman 🔘
- есть сервер koa
- есть @types/koa тайп дефинише

koa линкуется в пакет
@types/koa нет

но @types/koa есть в common/temp/node_modules

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

EO

Eugene Obrezkov in Frontend UA
Roman 🔘
- есть сервер koa
- есть @types/koa тайп дефинише

koa линкуется в пакет
@types/koa нет

но @types/koa есть в common/temp/node_modules

соответственно вся компиляция идет по одному месту, потому что строгая конфигурация тайпскрипта не позволяет мне юзать абы шо без нормальных тайп дефинишенов
так @types же как прямая зависимость, раш её поставит и koa и @types/koa
источник

R🔘

Roman 🔘 in Frontend UA
Eugene Obrezkov
так @types же как прямая зависимость, раш её поставит и koa и @types/koa
в моем пакете да
источник

EO

Eugene Obrezkov in Frontend UA
ну так должно работать
источник

R🔘

Roman 🔘 in Frontend UA
ну вот не линкует что то, для меня это тоже странным выглядит
источник

EO

Eugene Obrezkov in Frontend UA
так @types/koa нету в node_modules твоего сабпроекта ?
источник

R🔘

Roman 🔘 in Frontend UA
да
источник

R🔘

Roman 🔘 in Frontend UA
но он есть в devDeps этого сабпроекта
источник