NPM 7.0

Опубликовано August@Karro - ср, 10/14/2020 - 18:54

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

  • Рабочие области (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".

 

Последние материалы