Скидки до 28% + 2-ая профессия бесплатно и подарки на 50 000₽

Главная | Все статьи | Код

Вышел обновленный менеджер пакетов npm v7.0.0

Время чтения статьи ~2 минуты 11
Вышел обновленный менеджер пакетов npm v7.0.0 главное изображение

Некоммерческая организация OpenJS Foundation, занимающаяся развитием языка JavaScript, объявила о выходе npm v7.0.0 — новой версии пакетного менеджера npm. Подробно рассказываем о новинках этой версии npm.

Новая версия менеджера появится вместе с Node.js 15.0.0 во второй половине ноября, однако любой желающий может установить npm v7.0.0 уже сейчас — для этого нужно запустить npm i -g npm@7 в своем терминале.

Новые функции npm v7.0.0:

— Workspaces: появился набор функций для npm, которые обеспечивают поддержку управления несколькими пакетами из одного корневого пакета верхнего уровня.

— Автоматическая установка peer-зависимости: до этой версии разработчикам приходилось управлять своими peer-зависимостями и вручную устанавливать их. Новый алгоритм, по которому они будут работать, позволит найти совпадающие peer-зависимости в ветке node_modules.

— package-lock v2 и поддержка yarn.lock: новый формат package-lock откроет возможность делать детерминированно воспроизводимые сборки, а также включает в себя все, что необходимо npm для полного построения дерева пакетов. При этом до npm v7.0.0 файлы yarn.lock просто игнорировались, теперь же менеджер может использовать yarn.lock в качестве источника метаданных пакета и resolution guidance.

Внутренние изменения

Разработчики переработали внутреннюю структуру npm. Например, проверка и управление деревом node_modules перенесены в модуль Arborist. Подробнее об этом изменении и его последствиях читайте в блоге npmjs.

При этом в заявлении OpenJS Foundation говорится, что внутренние изменения npm гарантируют, что кодовая база этого продукта со временем станет более надежной и простой в обслуживании. В дальнейшем это позволит быстрее выпускать обновленные версии интерфейса командной строки с меньшим количеством ошибок и ускоренным циклом итераций.

На сегодняшний день нет модулей, которые бы работали с версией npm 6, но не могли бы поддерживать npm v7.0.0, отметили в OpenJS Foundation. Несмотря на это, автоматическая установка peer-зависимостей может потенциально нарушить определенные рабочие процессы.

Кроме того, npm v7.0.0 использует package.exports, что делает невозможным использование require() с внутренними модулями npm. Другое изменение — npx был полностью переписан для использования команды npm exec. Из-за этого вводятся различные изменения в функциональности, наиболее заметными из которых является сообщение о том, что модуль, который вы пытаетесь запустить, еще не установлен. О других критических изменениях в npm 7.0.0 можно почитать в блоге npmjs.com.


На Хекслете есть большой курс по работе с командной строкой, также пользователи могут пройти бесплатный курс по работе с Git.

Аватар пользователя Svet Ivanov
Svet Ivanov 14 октября 2020
11
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря