The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Доступен пакетный менеджер NPM 7.0

13.10.2020 23:29

Опубликован выпуск пакетного менеджера NPM 7.0, входящего в поставку Node.js и применяемого для распространения модулей на языке JavaScript. Репозиторий NPM обслуживает более 1.3 млн пакетов, которыми пользуются около 12 млн разработчиков. В месяц фиксируется около 75 миллиардов загрузок. NPM 7.0 стал первым значительным выпуском, сформированным после покупки NPM Inc компанией GitHub. Новая версия будет включена в поставку будущего выпуска платформы Node.js 15, который ожидается 20 октября. Для установки NPM 7.0, не дожидаясь новой версии Node.js, можно выполнить команду "npm i -g npm@7".

Ключевые новшества:

  • Рабочие области (Workspaces), позволяющие агрегировать в один пакет зависимости из нескольких пакетов для их установки за один шаг.
  • Автоматическая установка peer-зависимостей (используются в плагинах для определения базовых пакетов, для работы с которыми рассчитан текущий пакет, даже если он напрямую в нём не используется). Peer-зависимости указываются в файле package.json в секции "peerDependencies". Ранее подобные зависимости устанавливались разработчиками вручную, но в NPM 7.0 реализован алгоритм, гарантирующий, что корректно определённая peer-зависимость найдена на одном уровне или выше зависимого пакета в дереве node_modules.
  • Вторая версия формата блокировок (package-lock v2) и поддержка файла-блокировки yarn.lock. Новый формат позволяет реализовать повторяемые сборки и включает всё, что необходимо для полной сборки дерева пакетов. NPM также теперь может использовать файлы yarn.lock в качестве источника метаданных пакета и информации о блокировках.
  • Проведён значительный рефакторинг внутренних компонентов, нацеленный на разделение функциональности для упрощения сопровождения и увеличения надёжности. Например, код для инспектирования и управления деревом node_modules перемещён в отдельный модуль Arborist.
  • Осуществлён переход на использование поля package.exports, который делает невозможным подключение внутренних модулей через вызов require().
  • Полностью переписан пакет npx, который теперь использует команду "npm exec" для запуска исполняемых файлов из пакетов.
  • Значительно изменён вывод команды "npm audit", как при выводе в читаемом формате, так и при выборе режима "--json".


  1. Главная ссылка к новости (https://blog.npmjs.org/post/63...)
  2. OpenNews: GitHub успешно завершил сделку по покупке NPM
  3. OpenNews: Лишь 9.27% мэйнтейнеров пакетов NPM используют двухфакторную аутентификацию
  4. OpenNews: Уязвимость в NPM, позволяющая изменить произвольные файлы при установке пакета
  5. OpenNews: В пакетный менеджер NPM 6.13 добавлены инструменты для финансирования разработчиков
  6. OpenNews: Бывший техдиректор NPM развивает распределённый репозиторий пакетов Entropic
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/53884-npm
Ключевые слова: npm, javascript
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:44, 13/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > NPM 7.0 стал первым значительным выпуском

    Нет не стал. Читал я changelog-и и скажу, что тянет на минорный выпуск.

     
     
  • 2.14, Аноним (14), 08:39, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Новый lock (v2) файл полностью не совместим с прошлым и ломает обратную совместимоть - это изменение для semver-major. Учите хоть немного матчасть, комментаторы.
     
     
  • 3.22, _hide_ (ok), 10:14, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это вы кому рассказывайте про совместимость модулей ядра между минорными выпусками? Изменений кот наплакал, а оставить два формата файла - можно без проблем, только зачем, когда все сломать и всех послать...
     
  • 3.31, Аноним (31), 17:36, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > это изменение для semver-major. Учите хоть немного матчасть, комментаторы.

    это называется не "значительный" а "несовместимый". Если бы в новости было написано "NPM 7.0 - первый несовместимый выпуск ...", претензий бы и не было. Учите хоть немного матчасть, комментаторы.

     
     
  • 4.34, Аноним (14), 19:13, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Изучи, что такое semver.
     
     
  • 5.37, Аноним (31), 21:32, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Given a version number MAJOR.MINOR.PATCH, increment the:
    > 1. MAJOR version when you make incompatible API changes,
    > 1. MAJOR version when you make INCOMPATIBLE API changes,
    > INCOMPATIBLE

    Оно? Или ты про семвер судишь только по восторженным отзывам с конференций по яваскрипту и рубям?

     

  • 1.2, Аноним (2), 00:40, 14/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ждем свидетелей лефтпада. Пакетные менеджеры это очень плохо, ведь Настоящие Специалисты пишут все в каждом проекте с нуля (разумеется только на с++, он же быстрый).
     
     
  • 2.3, Имя (?), 01:36, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Свидетелям лефтпада в школу вставать рано завтра.
     
  • 2.4, fske (?), 01:52, 14/10/2020 Скрыто модератором
  • +4 +/
     
     
  • 3.12, пох. (?), 08:31, 14/10/2020 Скрыто модератором
  • +/
     
  • 2.5, Аноним (5), 03:45, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если хочешь чтобы не тормозило, то да берешь C++, ну причем тут JS, ты бы еще с PHP сравнил или с bash, ну а че один скриптовый язык для работы с DOM, другой скриптовый для динамической генерации HTML, а третий так вообще для автоматизации администрирования, равзе что ABAPа не хватает
     
  • 2.16, Аноним (16), 08:42, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Да ладно, не комплексуйте так уж прям из-за того, что пишете на JS.
     

  • 1.6, minona (ok), 04:06, 14/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Осуществлён переход на использование поля package.exports, который делает невозможным подключение внутренних модулей через вызов require().

    Наконец. Джва года ждал.

    >Проведён значительный рефакторинг внутренних компонентов, нацеленный на разделение функциональности

    Годнота.

    >Полностью переписан пакет npx

    Вторая годнота.

    Так, я смотрю, дело идёт.

     
  • 1.7, Аноним (7), 04:14, 14/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Новый формат позволяет реализовать повторяемые сборки и включает всё, что необходимо для полной сборки дерева пакетов.

    Ничего себе, всего 10 лет понадобилось. Пацаны вообще ребята

     
     
  • 2.15, Аноним (14), 08:41, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это уже несколько лет как есть (lock файл). Зачем это в новости?
     
     
  • 3.28, Аноним (7), 15:29, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть разница. Тот лок файл, что был носил чисто уведомительных характер, как лог файл. Для повторимых сборок - это не особо полезная фигня.
     
     
  • 4.35, Аноним (14), 19:14, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, npm через старый lock файл собирал идентичный node_modules с жестко зафиксированными версиями.
     

  • 1.8, m.makhno (ok), 04:17, 14/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ребят, объясните, пожалуйста, мне, человеку, далёкому от js как на фронте так и в бэкэнде: нод и всё прилагающееся — это действительно качественный и полезный фреймворк, или же просто модно-молодёжный проект? Быстр ли он, безопасен, и как оптимизирован? И тот же вопрос по реакту, который тоже на слуху. Спасибо заранее за полезные ответы.
     
     
  • 2.9, Аноним (9), 05:08, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Node.js не фреймворк, а среда, дополняющая JavaScript функциями I/O, которых в нем по стандарту нет и не будет. Если JavaScript сам по себе довольно симпатичен, то Node.js таких сильных восторгов уже не вызывает -- стд библиотека оформлена некачественно, практикуются каллбаки вместо промисов, до сих пор остается легаси Buffer, хотя уже есть TypedArray, для TypeScript типы составлены хреновато, неприятно работать. Не является модно-молодежным, т.к. сервер-сайд на JavaScript писали еще в 90-ых. Относительно пихонов -- супер-быстр, относительно Java -- медлителен. Проект сложнее хелло-ворлда имеет у себя в корне папку node_modules, в которую закачивается половина интернета. Во время установки любого популярного пакета обязательно высветится бессмысленное сообщение от создателя core-js с просьбой взять его на работу, что странно, учитывая, что сейчас он сидит в тюрьме за убийство.
     
     
  • 3.13, Аноним (13), 08:36, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >бессмысленное сообщение от создателя core-js с просьбой взять его на работу, что странно, учитывая, что сейчас он сидит в тюрьме за убийство

    Не такое и бессмысленное, может, в службаюу безопасности Сбербанка возьмут.

     
  • 3.17, Аноним (14), 08:44, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • –7 +/
    > Проект сложнее хелло-ворлда имеет у себя в корне папку node_modules, в которую закачивается половина интернета.

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

    > Во время установки любого популярного пакета обязательно высветится бессмысленное сообщение от создателя core-js

    Нет.

    В целом, комментарий стоит из вранья чуть меньшне, чем полностью.

     
  • 3.23, Аноним (23), 10:15, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >ключевой разработчик и единственный мэйнтейнер был осуждён на полтора года колонии-поселения (сбил насмерть человека на пешеходном переходе - один из пешеходов был пьян и упал, а второй наклонился, чтобы его поднять, что помешало их вовремя заметить в тёмное время суток).

    За такое вообще оправдать надо было. Люди сами бросились под колёса.

     
     
  • 4.24, Аноним (23), 10:20, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    P.S. Вполне может быть, что виноват именно дворник. У меня один раз так было - дворник не поколол лёд, в результате я поскользнулся и на проезжую часть вылетел. Благо красный свет для пешеходов только-только включился.
     
  • 4.27, Аноним84701 (ok), 13:02, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> один из пешеходов был пьян и упал, а второй наклонился, чтобы его поднять, что помешало их вовремя заметить в тёмное время суток).
    > Приговором суда Пушкарев Д.В. признан виновным в том, что ДД.ММ.ГГ, управляя мотоциклом «НS»,
    > регистрационный знак ***, двигаясь со скоростью 60 км/ч, в районе <адрес>, в нарушение п.п. 1.3, 10.1, 14.1
    > Правил дорожного движения РФ, не уступил дорогу пешеходам Р.Г. и П.А., переходящим проезжую часть по
    > нерегулируемому пешеходному переходу, обозначенному знаками 5.19.1 и 5.19.2, а также дорожной разметкой 1.14.1, и допустил наезд на указанных лиц.
    > За такое вообще оправдать надо было. Люди сами бросились под колёса.

    Оправдать, что пешеходов на "ихнем" переходе он не увидел вовремя, потому что ехал слишком быстро? o_O
    > Водитель должен вести транспортное средство со скоростью, не превышающей установленного ограничения, учитывая при этом ...  дорожные и метеорологические условия, в частности видимость в направлении движения.
    > Скорость должна обеспечивать водителю возможность постоянного контроля за движением транспортного средства для выполнения требований Правил.

    Это еще очень "толерантное" определение. Во многих других странах довольно недвусмысленно привязывают скорость к остановочному пути.

    Но вообще, неплохо бы "на поселение" еще и ответственных за освещение переходов (как впрочем и их расположения) отправлять.

     
     
  • 5.38, Аноним (23), 22:13, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Оправдать, что пешеходов на "ихнем" переходе он не увидел вовремя, потому что ехал слишком быстро? o_O

    1. Пешехода, даже если медленно ехать задавить можно, если он тебе под колёса вылетит внезапно.
    2. Рассматривая ту же ситуацию с непоколотым льдом. Непосредственно перед капотом у автомобиля слепвя зона. Даже если бы даже автомобиль стоял неподвижно, если бы я вылетел в ту зону, то меня скорее всего бы раздавили.
    3. Пешеходы, носящие световозвращающие элементы или ткань очень редки. Их в темноте даже с фарами очень хреново видно, когда они не на дороге, а сбоку. А когда на дорогу вылетят - см. п. 1 и 2.
    4. Есть ещё очень много пешеходов с собаками, когда пешеход сам на тротуаре, а вот собака на натянутом поводке уже на проезжей части.
    5. А есть такая же ситуация, но вместо поводка - рука, а вместо собаки - маленькие дети.
    6. Ещё есть лица, переходящие дороги в неположенных местах.

    Суммирую - задавить пешехода в таких условиях очень легко, и вина зачастую тут не только на водителе, а на самом пешеходе и на третьих лицах.

     
     
  • 6.39, Аноним84701 (ok), 01:31, 15/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых один из пешеходов был пьян и упал, а второй наклонился намекает, чт... большой текст свёрнут, показать
     
  • 6.40, Аноним (-), 09:02, 16/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Давайте оправдывать водителей вьезжающих в толпу пешеходов когда у них (пешеходов) зеленый свет и не дающих перейти улицу на светофоре.
     
  • 3.32, Аноним (31), 17:44, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > практикуются каллбаки вместо промисов

    Каллбаки читабельнее промисов.

    > до сих пор остается легаси Buffer, хотя уже есть TypedArray

    Поддержка легаси - преимущество (другой вопрос, насколько это проявляется в других аспектах ноды). Но не для тех, кто хочет постоянно бежать, чтобы оставаться на месте.

     
  • 3.41, erthink (ok), 21:21, 16/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Проект сложнее хелло-ворлда имеет у себя в корне папку node_modules, в которую закачивается половина интернета.

    Это даже просится в википедию.

     
  • 2.21, anonymous yet another (?), 09:42, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В саму конценцию subj заложено "неконтролируемость результата" со всеми шлейфами про "безопасность", устойчивость и утечки информации. Тут правильно заметили, что неизбежно "выкачивая половину интернета" невозможно проконтролировать, что же ты накачал в этот раз и смог ли накачать.
     
  • 2.36, Anonim (??), 21:29, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там очень удачный интерпретатор языка JS (V8 называется), все остальное так себе. Сам язык с трудноизлечимыми родовыми травмами, система пакетов - постоянный источник раздражения. Можно посмотреть в сторону Dеno, но там вас заставят изучать еще и TypeScript. Реакт - один из инструментов тупикового развития веб-технологий. Позволяет эффективно создавать говносайты, оптимизируя вычисления на стороне сервера путем переноса проблем на сторону клиента.
     

  • 1.19, ryoken (ok), 09:14, 14/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Когда вижу "npm" - сразу срабатывает условный рефлекс, "что там ещё нарыли в уязвимостях". Рефлекс выработался на этом сайте.
     
     
  • 2.20, 1 (??), 09:38, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь MicroSoft этого не допустит же !
     
     
  • 3.25, ryoken (ok), 11:03, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Теперь MicroSoft этого не допустит же !

    У монстрософта хватает своих дуршлагоклепателей.

     
  • 3.33, ms (??), 18:48, 14/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мы благодарны за доверие, но нет, к сожалению, мы еще не сравнялись с Богом. Изменить основу мироздания нам не дано, а полумерами тут ничего не исправить.

    (Разумеется, всегда остаются ядерные бомбардировки, но жертвы среди мирного, не пишущего на js населения, предотвратить мы пока не в состоянии. Работа в этом направлении, разумеется, ведется.)

     

  • 1.42, Анонимбыдлокодер (?), 08:24, 19/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Workspace они запилили ;%#@ !
    Лучше бы namespace запилили бы как во всех нормальных менеджерах пакетов.

    Даже быдло-пыховский быдло-composer поддерживает namespace.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру