1.1, Аноним (1), 12:34, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
меня всегда удивляло - откуда эти цифры - миллионы пакетов, сотни миллионов загрузок чего-то за месяц - неужели этот нпм так популярен? - откуда на планете вообще столько итишников взялось
| |
|
2.42, FF (?), 13:17, 05/01/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это рутинное дело, а не эксперимент. Типичный node_modules.
Миллионы потому, что npm install и npm audit fix, постоянно надо всю гроздь обновлять, и вместо разработки фич заниматься адаптацией после обновы.
| |
2.43, FF (?), 13:21, 05/01/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
В Го по умолчанию, например, есть общий каталог, куда качаются пакеты разных версий для всех проектов пользователя. А тут для каждого, например, примера из урока, надо выгружать тысячи пакетов, но это по умолчанию если из-за вебпак, sass и т.п.
| |
|
3.157, jt3k (ok), 13:31, 09/01/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> В Го по умолчанию, например, есть общий каталог, куда качаются пакеты разных
> версий для всех проектов пользователя.
Это на машине разработчика такое. А в докере не будет этой папки из-за особенностей его работы и из-за безопасности возможно или сложности реализации)
| |
|
|
3.68, Аноним (68), 16:31, 05/01/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Всё правильно делают. Раз Node.js такоеьговно, что в стандартой библиотеке нет самых базовых вещей, то приходится делать свою стандартную библиотеку.
| |
|
4.158, jt3k (ok), 13:32, 09/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Всё правильно делают. Раз Node.js такоеьговно, что в стандартой библиотеке нет самых
> базовых вещей, то приходится делать свою стандартную библиотеку.
Всё там теперь есть. Просто раньше не было вот и наделали обёрток для старых версий
| |
|
|
2.71, Витюшка (?), 17:19, 05/01/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
На каждый коммит в CI/CD создаётся чистое окружение и туда устанавливаются (скачиваются) в зависимости с нуля (из npm) чтобы собрать пакет/проект/приложение.
Так делают многие, если не большинство. Вот оттуда)
| |
|
|
4.159, jt3k (ok), 13:36, 09/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Кеширование тоже устаревшая технология и потому ненужно?
Любой squid в сети установить и данная проблема улетучится. Просто недогоняторов много развелось
| |
|
3.117, Витюшка (?), 03:48, 06/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Кэширование делает дай бог один из 10 проектов (репозиториев), если не из 100. А если учитывать все hello world с гитхаба...
| |
|
|
|
4.151, _kp (ok), 00:36, 08/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Простенькую функцию как пакет может и нормально, но бардак с зависимостями это проблемы репозитория.
Не должно быть даже возможности включения в зависимости, того, что не используется, или не обязательно.
Ps: впрочем, множество мелких пакетов, даже без зависимостей, заспамливают репозитории.
| |
|
|
2.156, jt3k (ok), 13:28, 09/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Сколько сайтов столько и пакетов в каждом.
Конечно не все сайты используют пакеты нпм. Но есть команда которые создают собственные пакеты которые в свою очередь используют другие пакеты из нпм. Любой ci конвеер за неимением кеш-состояния выкачивает нпм пакеты заново из нпм.
Это может быть просто зацикленная труба тестирования внутри которой докер качает из нпма себе зависимости для работы приложения.
Нпм популярен. Жабаскрипт ведь везде.
| |
|
1.6, Аноним (6), 12:51, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +20 +/– |
>Пакет из NPM может быть удалён автором только если он ещё не >используется в зависимостях других пакетов, но после публикации >"everything" зависимостями оказались охвачены все пакеты в >репозитории.
Шах
>Примечательно, что удаление самого пакета "everything" также оказалось >заблокированным, так как 9 лет назад в репозитории был размещён >тестовый пакет "everything-else", в котором была указана строка >"everything" в списке зависимостей. Таким образом, пакет "everything" >после публикации оказался в зависимостях у другого пакета.
И мат!
| |
|
2.51, Sw00p aka Jerom (?), 13:41, 05/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Шах
но это же вроде после истории с лефт-падом, запретили удалять свой гамнокод :) а когда нет возможности его удалить, то и со временем в нем можно утонуть, как показал эксперимент :))
>И мат!
когда связываешся с гамном, будь готов поплавать в нем :)
| |
|
3.160, jt3k (ok), 13:39, 09/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> когда связываешся с гамном, будь готов поплавать в нем :)
Важна не ошибка а реакция на ошибку. Уверен они это очень быстро смогут решить. Сообщество ведь живое. Ждём новостей. Лефтпад меньше недели провалялся анпаблишным в нпм.)
| |
|
2.52, Sw00p aka Jerom (?), 13:46, 05/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
ПАТ
ждем когда авторам позволят запрещать использовать свой код в качестве зависимости в других пакетах, что собственно равносильно вернуть возможность удаления пакета:)
хотя из этого порочного круга можно выйти, и устанавливать галочку запрета единожды при регистрации нового пакета. И тогда ничего ломаться не будет, ибо никто в зависимости не потащит.
| |
|
3.65, ИмяХ (ok), 16:22, 05/01/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Тогда на каждый такой проект появятся тысячи автоматически синхронизируемых форков, что ещё больше раздует базу пакетов
| |
|
4.113, Sw00p aka Jerom (?), 22:53, 05/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Тогда на каждый такой проект появятся тысячи автоматически синхронизируемых форков, что
> ещё больше раздует базу пакетов
ну запрет на форк никто не отменял :)
| |
|
|
|
1.19, Аноним (19), 12:59, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –12 +/– |
Чего-то Gentoo с portage попахивает. Будто это повод новость создать какие дураки бывают.
В генте тоже можно новичку вдуплять на тему что делать когда обновление требует обновить зависимость, но другой пакет гвоздями прибит к этой версии зависимости.
| |
|
2.31, Аноним (31), 13:04, 05/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Пожаловаться. Сделают для пакета зависимости слотовую установку.
| |
2.75, Котофалк (?), 18:06, 05/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
В плане зависимостей gentoo portage ничем не отличается от любой другой репы и всё зависит от мейнтейнеров. Для новичка в gentoo проблема в том, что он про зависимости не знает-не понимает (и, возможно, ни знать, ни понимать и не хочет), а от него требуется установка флагов с пониманием зависимостей.
| |
|
1.27, Аноним (27), 13:03, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вопрос к специалистам по NPM. NPM-репозтории - это репозитории, доступ к заливке только у его хозяев (в смысле, создателя этого сервиса), или любой Васян может залить туда вирус? Или же хозяева сами туда заливают вирусы? Получается, хозяева NPM репозитория днём и ночью пьют кефир и проверяют залитые пакеты от Васянов на вирусы? Или им пох.?
| |
|
2.35, Аноним (-), 13:07, 05/01/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Или им пох.?
Последнее)
Ну могут добавить какую-то двухфакторку, чтобы от гореразраба, у которого один пароль на все сервисы, не заливали всякую чушню.
От намеренной диверсии это не спасет, так же как и не спасет от заливки в репу вредноносного кода.
Мало кто проверяет все изменения при обнолении программы.
| |
|
1.33, Аноним (33), 13:07, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
>Примечательно, что удаление самого пакета "everything" также оказалось заблокированным, так как 9 лет назад в репозитории был размещён тестовый пакет "everything-else", в котором была указана строка "everything" в списке зависимостей. Таким образом, пакет "everything" после публикации оказался в зависимостях у другого пакета.
Это баг npmа, что он позволил разместить пакет с неразрешёнными зависимостями.
| |
1.39, Тот_ещё_аноним (ok), 13:11, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
С NPM не пересекаюсь, а тут друг спрашивает...
Можно использовать в имени требуемого пакета "*" или "?"? Чтоб не "everything1" & "everything2", а "everything?" или "everything*"
| |
|
|
3.161, jt3k (ok), 13:45, 09/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Нельзя
Надо смотреть в исходники, чтобы такое утверждать. Возможно и можно)
| |
|
|
1.40, Аноньимъ (ok), 13:12, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
Пороть за такие "эксперементы".
> Один из разработчиков JavaScript-пакетов
Разработчик пакетов? Это что-то новое.
| |
|
2.67, scriptkiddis (?), 16:30, 05/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Почему пороть? Хотите чтобы этот прикольный эффект так и остался security by obscurity? Лицемерненько не?
| |
2.108, Аноним (108), 21:52, 05/01/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
Он же разработал именно пакет и даже применил знания из области структур данных, размазав всё по дереву. Разработчик позаботился о масштабируемости проекта. Так что всё корректно
| |
|
|
2.135, fuggy (ok), 23:49, 06/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ну будет не 5 пакетов chunk-N, а 50 пакетов chunk-N. Если не поможет, то добавят 3 уровень. А от ограничения количества пострадают в основном любители лефтпадов, которые каждую функцию в свой пакет формируют.
| |
|
1.59, Аноним (59), 15:23, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> пакет "everything" связан прямыми зависимостями с пятью пакетами
> которые в свою очередь привязываются зависимостями к более 3000 пакетов
> в каждом из которых осуществляется привязка к 800 существующих пакетов.
И это самый standalone пакет в репозитории npm.
| |
1.60, ZloySergant (ok), 15:26, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Да это всё фигня, вы представьте какие лулзы автор эксплойта словит от введённых костылей, либо от позиции "всем пох".
| |
|
2.70, Аноним (70), 16:37, 05/01/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
Да надоели вы со своими "умными" (именно в кавычках) историями.
Проблема решается путём выдачи соли\сахара в одноразовом пакете.
| |
|
3.129, Аноним (132), 16:48, 06/01/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Хакер устраивается на фабрику, производящую пакеты с солью/сахаром.
Хотя зачем фантазировать - про иглы в клубнике в Австралии мегаумный айтишник не слышал?
| |
|
4.133, 78 (?), 17:17, 06/01/2024 [^] [^^] [^^^] [ответить] | +/– | Делает пластическую операцию, покупает поддельные документы, учится говорить с а... большой текст свёрнут, показать | |
|
3.149, Аноним (149), 22:07, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
История очень даже умная, только мало кто умные выводы из неё делает (вот юзер 78 ниже сделал).
| |
|
|
1.76, Аноним (76), 18:09, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
кто-нить в курсе: всяко-разные cratesы и голангорги по тем же принципам работают, что и npm?
| |
|
2.140, Аноним (140), 02:37, 07/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Насколько я знаю: повторить NPM с его приколами (типа исполнение произвольного скрипта при установке) ещё никто не решился...
| |
|
1.79, beck (??), 18:35, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Второй закон Вейнберга: если бы строители строили здания так же, как программисты пишут программы, первый залетевший дятел разрушил бы цивилизацию.
| |
1.81, Аноним (11), 19:09, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Тот случай, когда твой датацентр начинает подлагивать и уже пора задуматься о покупке нового
| |
1.94, Аноним (-), 20:04, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Таким образом, пакет "everything" после публикации оказался
> в зависимостях у другого пакета.
Таким образом тип провел DoS атаку на NPM, удостоверившись что теперь авторы вообще не смогут удалять пакеты. Вот уж что написано пером, не вырубишь топором!
| |
1.104, Аноним (108), 21:45, 05/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> Примечательно, что удаление самого пакета "everything" также оказалось заблокированным, так как 9 лет назад в репозитории был размещён тестовый пакет "everything-else", в котором была указана строка "everything" в списке зависимостей. Таким образом, пакет "everything" после публикации оказался в зависимостях у другого пакета.
Т.е. получилась циклическая зависимость?
| |
1.115, Аноним (115), 00:55, 06/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
NPM на сегодняшний день, это наверное самый эффективный способ засрать себе файловую систему.
| |
1.136, Golangdev (?), 00:27, 07/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> Размещение "everything"
"Размещение" бывает с *дамами лёгкого поведения* в сауне, а здесь - публикация. Публикация, не "размещение".
| |
|
2.138, Вы забыли заполнить поле Name (?), 01:00, 07/01/2024 [^] [^^] [^^^] [ответить]
| +8 +/– |
> "Размещение" бывает с *дамами лёгкого поведения* в сауне, а здесь - публикация. Публикация, не "размещение".
Вот за что люблю местных экспертов, так это за их богатый жизненный опыт.
| |
|
1.141, Вы забыли заполнить поле Name (?), 02:43, 07/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Примечательно, что удаление самого пакета "everything" также оказалось заблокированным, так как 9 лет назад в репозитории был размещён тестовый пакет "everything-else", в котором была указана строка "everything" в списке зависимостей.
Получается можно публиковать пакет с зависимостями от несуществующих пакетов?
| |
1.150, _kp (ok), 00:30, 08/01/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Наглядный пример гнилой системы зависимостей, не отражающей фактические зависимости вообще.
А влючение в зависимости не только не существующих пакетов, но и реальных, но не используемых уже маразм.
Тут или всю систему менять, или раздувать дальше маразм ради маразма.
| |
|