Node.js
Удивляюсь, до чего же хрупок этот Node.js. Месяц назад я делал фронт на Vue, и настало время кое-что поправить. Обновляю пакеты, запускаю билд — сотня ошибок. Мудрил так и сяк, пока коллега не сказал — удали node_modules и все заработает.
Вот это “удали” меня поражает. Вместо того, чтобы решить корень проблемы, решают симптомы. Подумаешь не работает! Просто начни с чистого листа. Ситуация КРИЧИТ о системной проблеме, но никому нет дела. В платформу вливают огромные деньги, ей пользуются миллионы, и никто не может это починить.
Была б моя воля, я бы посадил разработчиков Node.js за компы и сказал: чини, но без удаления файлов. Найди источник проблемы и реши его. За удаление — пытка током на месте. И тогда бы все починили.
Помню, была та же беда в проекте с React Native, только хуже. Проект перестал собираться, и я по привычке удалил node_modules. Оказалось, в его недрах лежат бинарники для устройства, которые генерируется на старте. При повторной установке этот шаг пропускается, и где взять эти бинарники — неизвестно. На StackOverflow так и пишут — перед удалением скопируй такие-то файлы в папочку, иначе будешь плакать. Плакал я, конечно, уже после того, как это прочел.
Вы, наверное, подумали, что после удаления node_modules все заработало? Это было бы слишком просто. Я получил другие непонятные ошибки, и коллега предположил, что моя версия Node.js слишком высока. Проверили — да, у него 16, у меня 20. Но ведь месяц назад все работало на версии 20! Мало того, что за месяц случились такие изменения, так эти клоуны не оставили обратную совместимость! Не иначе как цирком с клоунами эту ситуацию назвать нельзя.
В целом Node.js вызывает ощущение, что убираешь какашки за годовалым ребенком. Те, у кого есть дети, знают, о чем я говорю. Когда делаешь это постоянно, ощущения притупляются, и можно спокойно чистить говно, жуя бутерброд. Разница в том, что к двум годам проблема с туалетом уходит, а с семи лет ребенок уже поддерживает чистоту сам.
Node.js, напротив, обречен срать под себя как инвалид. Если через восемь лет за ним нужно чистить какие-то папки, то, похоже, проблема не уйдет никогда. Бог с ним, пусть живет как хочет. Но непонятно, зачем с этим работать, и что в голове у людей, которые добровольно идут в разработку на Node.js.
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter
Женя, 29th Jul 2023, link
Как Python-разработчик не сильно знаком с Node. Но задача с разными версиями разве не решается с помощью каких-нибудь общих Docker-образов?
Ivan Grishaev, 29th Jul 2023, link
Конечно, вот только наши фронтендеры об этом не позаботились. Буду доводить до них.
Евгений, 30th Jul 2023, link
Читаю и плачу. Только на днях решал похожую же проблему. Суть в том, что в какой-то версии этих бесконечных node-webpack-leftpad-plugins возникла ошибка. Допустим, это была версия 2.0.2. Ошибку исправили в 2.0.3. У меня версия 2.1.6. Но возникает та же ошибка, которая была “исправлена” в 2.0.3. После часовых поисков выясняется, что “гениальные” js-разработчики исправили ошибку, но исправление привело к возникновению другой ошибки, поэтому они его откатили в следующей версии.
Ей-богу, я не могу понять, как эти свалки дурнопахнущего js-кода хоть как-то умудряются работать и что-то делать. Раньше у нас был один говноязык - PHP, после взгляд на любой код, написанный на котором, хотелось плакать и выцарапать себе глаза.
Теперь появился новый конкурент. Но если про PHP было более-менее однозначное мнение, что это плохой язык для неосиляторов, на котором пишут очень плохой код, то настолько же ужасному JS, на котором пишут ещё более худшие вещи, почему-то со всех сторон поют дифирамбы.
Влад, 2nd Aug 2023, link
рановато на 20ю версию переезжать, надо 18 версию ноды использовать, она Active LTS =)
Danil Rodin, 15th Aug 2023, link
Тут бы .nvmrc очень помог прям в папке с проектом.