NPM

NPM

Что это?

npm (Node Package Manager) – дефолтный пакетный менеджер для JavaScript, работающий на Node.js. Менеджер npm состоит из двух частей: CLI (интерфейс командной строки) – средство для размещения и скачивания пакетов, онлайн-репозитории, содержащие JS пакеты. Структуру репозитория npmjs.com можно представить, как центр исполнения заказов, который получает товары (npm-пакеты) от продавцов (авторы пакетов) и распространяет эти товары среди покупателей (пользователи пакетов).

Для чего нужно это знать?

Представим ситуацию, когда мы разрабатываем проект, и установили несколько npm пакетов. Они лежат у нас в проекте в папке node_modules. У нас на машине все работает, но рано или поздно нам необходимо запустить проект на другой машине, либо дать другому разработчику. И мы пушим проект в git, но папку node_modules в git мы не заливаем, так как она большая и занимает много места. И на другой машине невозможно запустить проект, так как неизвестно какие пакеты из node мы использовали. Для этого нам и нужен npm и package.json. Он хранит список пакетов, необходимых для проекта с нужными версиями, и на другой машине мы можем легко установить все пакеты, которые указаны там с помощью команды npm install

Какие базовые понятия включает этот навык?

Каждый проект в JavaScript – будь то Node.js или веб-приложение – может быть скопирован как npm-пакет с собственным описанием и файлом package.json. В package.json включено поле scripts для автоматизации сборки dependencies и devdependencies представляют собой словари с именами npm-библиотек (ключ) и их семантические версии (значение). О версионировании: ^: последний минорный релиз. Например, ^1.0.4 установит версию 1.3.0, если это последний минорный релиз в серии 1 мажорного релиза. ~: последний патч-релиз. ~1.0.4 установит 1.0.7, если эта последняя минорная версия в серии минорных релизов 1.0. Все версии пакетов будут отображены в сгенерированном файле package-lock.json. Файл package-lock.json описывает версии пакетов, используемые в JavaScript-проекте. Если package.json включает общее описание зависимостей (название товара), то package-lock.json более детальный – всё дерево зависимостей. package-lock.json генерируется командой npm install и читается npm CLI, чтобы обеспечить воспроизведение окружения для проекта через npm ci. npm install – команда, устанавливающая пакеты. Чтобы избежать добавления в репозитории вредоносных пакетов, организация npm.js пришла к идее аудита экосистемы, создав модуль npm audit. Он предоставляет информацию об уязвимостях в пакетах и о существовании версий с исправлениями. Отправить пакет в npmjs.com очень просто – нужно набрать в консоли npm publish. Важная часть, которой пренебрегают авторы – версионирование. Вот набор эмпирические правил semver.org, указывающих, когда следует увеличить номер версии: Мажорная версия: когда сделаны обратно несовместимые изменения API. Минорная версия: когда вы добавляете новую функциональность, не нарушая обратной совместимости. Патч-версия: когда вы делаете обратно совместимые исправления. Еще более важно следовать вышеуказанным правилам при публикации собственных пакетов, чтобы гарантировать, что вы не нарушаете чью-либо совместимость, так как по умолчанию в npm берется версия ^ (следующая младшая версия).

Где я могу освоить этот навык?

Освоить навык «NPM» ты можешь проходя обучение в нашей менторинге по программе «Frontend-разработчик». Более подробно навык изучается в проекте VUE TODO LIST.

В каких проектах я могу закрепить этот навык?

Хочешь узнать больше?

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

Стань востребованным специалистом

Оставь контакты, и мы свяжемся с тобой в ближайшее время

У меня есть промокод

или