0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p><strong>Некоммерческая организация OpenJS Foundation, занимающаяся развитием языка JavaScript,<a>объявила</a>о выходе npm v7.0.0 - новой версии пакетного менеджера npm. Подробно рассказываем о новинках этой версии npm.</strong></p>
1
<p><strong>Некоммерческая организация OpenJS Foundation, занимающаяся развитием языка JavaScript,<a>объявила</a>о выходе npm v7.0.0 - новой версии пакетного менеджера npm. Подробно рассказываем о новинках этой версии npm.</strong></p>
2
<p>Новая версия менеджера появится вместе с Node.js 15.0.0 во второй половине ноября, однако любой желающий может установить npm v7.0.0 уже сейчас - для этого нужно запустить npm i -g npm@7 в своем терминале.</p>
2
<p>Новая версия менеджера появится вместе с Node.js 15.0.0 во второй половине ноября, однако любой желающий может установить npm v7.0.0 уже сейчас - для этого нужно запустить npm i -g npm@7 в своем терминале.</p>
3
<h2>Содержание</h2>
3
<h2>Содержание</h2>
4
<ul><li><a>Новые функции npm v7.0.0:</a></li>
4
<ul><li><a>Новые функции npm v7.0.0:</a></li>
5
<li><a>Внутренние изменения</a></li>
5
<li><a>Внутренние изменения</a></li>
6
</ul><h2>Новые функции npm v7.0.0:</h2>
6
</ul><h2>Новые функции npm v7.0.0:</h2>
7
<p>- Workspaces: появился набор функций для npm, которые обеспечивают поддержку управления несколькими пакетами из одного корневого пакета верхнего уровня.</p>
7
<p>- Workspaces: появился набор функций для npm, которые обеспечивают поддержку управления несколькими пакетами из одного корневого пакета верхнего уровня.</p>
8
<p>- Автоматическая установка peer-зависимости: до этой версии разработчикам приходилось управлять своими peer-зависимостями и вручную устанавливать их. Новый алгоритм, по которому они будут работать, позволит найти совпадающие peer-зависимости в ветке node_modules.</p>
8
<p>- Автоматическая установка peer-зависимости: до этой версии разработчикам приходилось управлять своими peer-зависимостями и вручную устанавливать их. Новый алгоритм, по которому они будут работать, позволит найти совпадающие peer-зависимости в ветке node_modules.</p>
9
<p>- package-lock v2 и поддержка yarn.lock: новый формат package-lock откроет возможность делать детерминированно воспроизводимые сборки, а также включает в себя все, что необходимо npm для полного построения дерева пакетов. При этом до npm v7.0.0 файлы yarn.lock просто игнорировались, теперь же менеджер может использовать yarn.lock в качестве источника метаданных пакета и resolution guidance.</p>
9
<p>- package-lock v2 и поддержка yarn.lock: новый формат package-lock откроет возможность делать детерминированно воспроизводимые сборки, а также включает в себя все, что необходимо npm для полного построения дерева пакетов. При этом до npm v7.0.0 файлы yarn.lock просто игнорировались, теперь же менеджер может использовать yarn.lock в качестве источника метаданных пакета и resolution guidance.</p>
10
<h2>Внутренние изменения</h2>
10
<h2>Внутренние изменения</h2>
11
<p>Разработчики переработали внутреннюю структуру npm. Например, проверка и управление деревом node_modules перенесены в модуль Arborist. Подробнее об этом изменении и его последствиях<a>читайте</a>в блоге npmjs.</p>
11
<p>Разработчики переработали внутреннюю структуру npm. Например, проверка и управление деревом node_modules перенесены в модуль Arborist. Подробнее об этом изменении и его последствиях<a>читайте</a>в блоге npmjs.</p>
12
<p>При этом в заявлении OpenJS Foundation говорится, что внутренние изменения npm гарантируют, что кодовая база этого продукта со временем станет более надежной и простой в обслуживании. В дальнейшем это позволит быстрее выпускать обновленные версии интерфейса командной строки с меньшим количеством ошибок и ускоренным циклом итераций.</p>
12
<p>При этом в заявлении OpenJS Foundation говорится, что внутренние изменения npm гарантируют, что кодовая база этого продукта со временем станет более надежной и простой в обслуживании. В дальнейшем это позволит быстрее выпускать обновленные версии интерфейса командной строки с меньшим количеством ошибок и ускоренным циклом итераций.</p>
13
<p>На сегодняшний день нет модулей, которые бы работали с версией npm 6, но не могли бы поддерживать npm v7.0.0, отметили в OpenJS Foundation. Несмотря на это, автоматическая установка peer-зависимостей может потенциально нарушить определенные рабочие процессы.</p>
13
<p>На сегодняшний день нет модулей, которые бы работали с версией npm 6, но не могли бы поддерживать npm v7.0.0, отметили в OpenJS Foundation. Несмотря на это, автоматическая установка peer-зависимостей может потенциально нарушить определенные рабочие процессы.</p>
14
<p>Кроме того, npm v7.0.0 использует package.exports, что делает невозможным использование require() с внутренними модулями npm. Другое изменение - npx был полностью переписан для использования команды npm exec. Из-за этого вводятся различные изменения в функциональности, наиболее заметными из которых является сообщение о том, что модуль, который вы пытаетесь запустить, еще не установлен. О других критических изменениях в npm 7.0.0 можно<a>почитать</a>в блоге npmjs.com.</p>
14
<p>Кроме того, npm v7.0.0 использует package.exports, что делает невозможным использование require() с внутренними модулями npm. Другое изменение - npx был полностью переписан для использования команды npm exec. Из-за этого вводятся различные изменения в функциональности, наиболее заметными из которых является сообщение о том, что модуль, который вы пытаетесь запустить, еще не установлен. О других критических изменениях в npm 7.0.0 можно<a>почитать</a>в блоге npmjs.com.</p>