Недавно было объявлено о выпуске новой версии менеджера пакетов NPM 7.0 , входящего в дистрибутив Node.js и используемого для распространения модулей JavaScript .
В новой версии NPM 7.0 реализована функция Workspaces (набор возможностей в CLI npm), которая позволяет управлять несколькими пакетами, зависящими от разных пакетов, и устанавливать их за один шаг.
Поздравляем с релизом во вторник! Сегодня команда разработчиков npm CLI отмечает важную веху: мы официально выпустили [email protected] Если вы следили за нами в течение последнего года или дольше, вы знаете, что мы усердно работали над этим релизом.
Также предусмотрена автоматическая установка зависимостей (используется в плагинах для определения базовых пакетов, с которыми предназначен работать текущий пакет, даже если он не используется непосредственно в нём).
Соответствующие одноранговые зависимости для пакетов теперь определяются автоматически, поскольку ранее разработчикам приходилось устанавливать их вручную.
Зависимости от пакетов указываются в файле package.json в разделе "peerDependencies". NPM 7.0 реализует алгоритм, гарантирующий, что правильно определенная зависимость от пакета будет найдена на уровне зависимого пакета или выше в дереве node_modules.
Наша целеустремленность и решимость превзошли последние 3 месяца, поскольку мы выбрали еженедельную частоту выпуска и начали исправлять ошибки / комментарии во время наших окон бета / rc.
Как я уже упоминал ранее, у нас все еще есть возможности для улучшения, но мы думаем, что cli сегодня находится в очень стабильном месте и готов к использованию. npm v7 будет поставляться с Node.js v15 (предварительный заказ на эту работу откроется в ближайшее время), и мы с нетерпением ждем продолжения темпа изменений / улучшений по мере приближения к этому последнему кварталу года.
Кроме того, представлена вторая версия формата блокировки (package-lock v2) и поддержка файла блокировки yarn.lock.
Формат блокировки пакетов был изменен, и теперь он, по-видимому, содержит все, что нужно npm для полного построения дерева пакетов. До сих пор файлы yarn.lock явно игнорировались, поскольку с V7 клиент npm также может читать из них метаданные пакета и информацию о разрешении.
Новый формат позволяет выполнять повторяемые сборки и включает в себя все необходимое для построения полного дерева пакетов.
Кроме того, упоминается, что, несмотря на масштабный пересмотр внутреннего устройства npm, команда неустанно работала над тем, чтобы минимизировать нарушения большинства рабочих процессов.
Была проведена масштабная рефакторизация внутренних компонентов с целью разделения функциональности для упрощения обслуживания и повышения надежности.
Например, код для проверки и управления деревом node_modules перемещен в отдельный модуль Arborist.
Перешел на использование поля package.exports, что делает невозможным подключение внутренних модулей через вызов require ().
Полностью переписанный пакет npx, который теперь использует команду «npm exec» для запуска исполняемых файлов из пакетов.
Вывод команды «npm audit» значительно изменился как при создании в удобочитаемом формате, так и при выборе режима «–json».
Выполнять
Новая версия теперь доступна для широкой публики, и вы можете быстро обновить предыдущую версию или полностью установить эту новую версию.
Наконец, важно знать, что репозиторий 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
Если вы хотите узнать больше о выпущенной новой версии, вы можете ознакомиться с подробностями в официальном объявлении.