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

Опубликован выпуск пакетного менеджера 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».



Источник: http://www.opennet.ru/opennews/art.shtml? num=53884

© OpenNet