Skip to content

Latest commit

 

History

History

npm-5-is-now-npm-latest

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

npm@5 теперь npm@latest

Перевод заметки в официальном блоге npm: npm@5 is now npm@latest.

Уже здесь!

Начиная с сегодняшнего дня, если вы наберёте npm install npm@latest -g, вы обновитесь до версии npm 5.0.1. Кроме того, npm@5 поставляется вместе с новой Node.js 8.

Последние полтора года мы работали над устранением большого количества болячек, некоторые из которых существовали с момента создания реестра. Сегодняшний выпуск - самое большое достижение в скорости, консистентности и удобстве работы с npm.

Окончательный список того, что появилось нового и что изменилось, в примечаниях к релизу, но вот некоторые основные моменты:

Он быстрый

Мы переработали метаданные пакета, загрузку пакетов и кэширование пакетов, и это дало значительное ускорение. В целом мы ожидаем улучшения производительности на 20-100%. В некоторых случаях мы наблюдали ускорение до 5x.

Установка веб-сайта npm в наших собственных dev-средах уменьшилась с 99 секунд с использованием npm@4 до 27 секунд с npm@5. Теперь мы тратим меньше времени на офисные поединки.

С тех пор как npm был спроектирован, разработчики изменили способ его использования. Не только размер экосистемы экспоненциально растёт, но и количество зависимостей в среднем npm-пакете увеличилось на 250% с 2014 года. Всё больше разработчиков устанавливают различные полезные утилиты, такие как Babel, Webpack и Tap, локально, а не глобально. Это лучше, но это означает, что npm install делает гораздо больше работы.

Учитывая размер нашего сообщества, любое ускорение превращается в огромную экономию для миллионов пользователей, не говоря уже обо всех наших организациях и энтерпрайз-пользователях. Сделать npm@5 быстрым было очевидной целью с огромными наградами.

Он консистентный

Лок-файл по умолчанию

Shrinkwrap долгое время является частью npm, но npm@5 создаёт lockfiles по умолчанию, поэтому все установки npm-зависимостей теперь воспроизводятся. Файлы, которые вы получаете при установке данной версии пакета, будут одинаковыми при каждой его установке.

Мы обнаружили, что бесчисленные общие и трудоемкие проблемы могут быть связаны с «дрейфом», возникающим, когда разные окружения разработчиков используют разные версии пакетов. С заблокированными файлами по умолчанию это уже не проблема. Вы больше не будете терять время, пытаясь выяснить ошибку, только чтобы узнать, что она исходит от людей, использующих разные версии библиотеки.

Хэш SHA-512

Npm@5 добавляет поддержку хеширования tarball(tar-архивов) любыми хэш-функциями, поддерживаемыми Node.js, и публикует с использованием хеша SHA-512. С проверкой целостности загруженных пакетов вы защищены от повреждения данных и вредоносных атак, и получаете гарантию, что код, загружаемый из реестра, консистентен и безопасен.

Самовосстанавливающийся кэш

Наше новое кэширование дьявольски быстрое, но также оно более устойчивое. Несколько процессов npm не смогут повредить общий кэш, а npm@5 проверит данные как при добавлении, так и при извлечении, чтобы предотвратить установку повреждённых данных. Если запись в кэш не прошла проверку целостности, npm@5 автоматически удалит их и загрузит повторно.

Он проще в использовании

Основываясь на ваших отзывах мы улучшили пользовательский опыт, сделав оптимизацию по всему npm@5. Большая часть этих улучшений - более информативный и полезный вывод. Лучшим примером является то, что npm больше не показывает вам все дерево при установке пакета: вместо этого вы увидите итоговый отчёт о том, что было установлено. Мы сделали это изменение из-за большого числа зависимостей в среднем пакете. Пошаговый вывод оказался довольно громоздким после превышения определённого количества файлов.

Ты нужен ему

Npm@5 - огромный шаг вперёд как для npm, так и для нашего удивительного сообщества, а сегодняшний релиз - только начало. Ряд улучшений в конвейере сделает использование npm гладким настолько, насколько это возможно, и быстрым, как никогда ранее.

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

Какие нововведения были вам полезны? Что нам следует улучшить дальше? Насколько быстрее стали ваши установки? Дайте нам знать. Не стесняйтесь найти нас в Твиттере, и, если у вас возникнут какие-либо проблемы, обязательно напишите нам.


Слушайте наш подкаст в iTunes и SoundCloud, читайте нас на Medium, контрибьютьте на GitHub, общайтесь в группе Telegram, следите в Twitter и канале Telegram, рекомендуйте в VK и Facebook.

Статья на Medium