Оригинальный пост в Введение в NPM

Введение в нпм

npm — стандартный менеджер пакетов для Node.js.

Есть много вещей, которые делает npm. Это позволяет легко управлять пакетами node.js. Вы можете устанавливать пакеты node.js, делиться ими и управлять ими.

npm состоит из трех компонентов:

1. Сайт
2. Реестр
3. CLI

На официальном Веб-сайте npm вы можете найти пакеты, просмотреть документацию, поделиться и опубликовать пакеты.

Реестр npm — это большая база данных, состоящая из пакетов. В сентябре 2019 года в реестре было зарегистрировано более 1 миллиона пакетов, что сделало npm крупнейшим хранилищем кода для одного языка! и вы можете быть уверены, что есть пакет для (почти!) всего. Он начинался как способ загрузки и управления зависимостями пакетов Node.js, но с тех пор стал инструментом, используемым также во внешнем JavaScript.

CLI — это командная строка, которая помогает взаимодействовать с npm для установки, обновления и удаления пакетов, а также для управления зависимостями.

Примечание: Yarn — это альтернатива npm. Убедитесь, что вы проверить его, а также.

Установка

npm поставляется с Node.js, это означает, что вам не нужно устанавливать его отдельно. Перейдите на официальный сайт Скачать Node.js и установите его, если он еще не установлен в вашей системе.

После установки узла вы можете проверить версию узла и npm, запустив

$ узел — версия
$ npm — версия

пакет.json

package.json — это файл манифеста проекта. Используя package.json, вы можете управлять зависимостями и писать скрипты. В нем есть все метаданные о проекте.

Инициировать проект

› Примечание: вам нужно сделать это только в том случае, если вы начинаете новый проект, если нет, посмотрите, существует ли файл package.json.

Чтобы создать package.json, сначала перейдите в папку проекта. Вы можете создать package.json, выполнив команду

Инициализация $npm

Он запрашивает у вас некоторые данные, такие как имя пакета, описание, версия, автор, лицензия и т. д. Вы можете просто нажать Enter для значений по умолчанию.

Или быстро создать файл package.json. Вы можете использовать команду

$ npm инициализация -y

Установка всех зависимостей

Если в проекте есть файл packages.json, запустив команду

$ npm установить

он установит все зависимости, которые нужны проекту, то есть пакеты из зависимостей и devDependencies в package.json, в папке node_modules, создав ее, если она еще не существует.

node_modules — это папка, в которой установлены наши локальные пакеты. Появится новый файл с именем package-lock.json. Этот файл содержит точную версию пакета, в отличие от package.json, который содержит семантическую версию.

Установка одного пакета

Вы также можете установить конкретный пакет, запустив

$ npm install ‹имя-пакета›

Часто к этой команде добавляются дополнительные флаги:

- — save устанавливает и добавляет запись в зависимости файла package.json (по умолчанию, начиная с npm 5)
— save-dev устанавливает и добавляет запись в файл package.json devDependencies
- — без сохранения устанавливает, но не добавляет зависимость в файл package.json.

Разница в основном в том, что devDependencies обычно являются инструментами разработки, такими как библиотека тестирования, а зависимости связаны с приложением в рабочей среде.

Установка одного пакета Глобально

Глобально установленные пакеты работают в любом месте на машине. Чтобы установить глобальные пакеты, вы должны использовать флаг -g.

Как правило, любые пакеты, которые вы используете в своем проекте, должны быть установлены локально. И пакеты, которые вы используете в командной строке, должны быть установлены глобально.

Команда для локальных и глобальных пакетов одинакова, за исключением того, что для глобальных пакетов необходимо использовать флаг -g.

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

$ npm install -g nodemon

Версии

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

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

Указание явной версии библиотеки также помогает всем использовать одну и ту же версию пакета, чтобы вся команда работала с одной и той же версией до тех пор, пока не будет обновлен файл package.json.

Во всех этих случаях очень помогает управление версиями, и npm следует стандарту семантического управления версиями (semver).

Все версии пакетов представлены тремя цифрами

- Первая цифра - старшая
- Вторая - младшая
- Третья - патч.

Патч (~) обновлен для исправления ошибок.

Младший (^) обновляется для каждой новой функциональности, которая не нарушает существующий код.

Майор обновлен для больших изменений. Обычно они нарушают существующий код.

В package.json при установке пакета вы по умолчанию увидите символ вставки^. Это означает, что когда пользователь загружает ваш проект, пакет будет обновлен до последней дополнительной версии. То же самое относится и к патчу. Если мы не включаем какой-либо символ, то загружается точная версия. Чтобы получить последнюю основную версию, используется звездочка `*`. Но вы не хотите этого делать, так как основная версия может сломать ваш код.

Чтобы установить основную, дополнительную, патч (или) точную версию, вы можете использовать команду

$ npm install ‹package-name›@x.y.x

Например, установим lodash

Есть несколько способов сделать это. Во-первых, давайте начнем с основного

$ npm установить lodash

Эта команда устанавливает lodash и загружает последнюю доступную версию.

Если вы точно знаете, какая версия пакета вам нужна, вы можете добавить ее к имени пакета после символа `@`

$ npm установить [email protected]

Если вы не знаете точную версию пакета, npm также позволяет использовать семантические диапазоны для определения версии.

$ npm install lodash@⁴.0.0

Эта команда установит последнюю версию 4.x.x.

Оба примера не изменяют package.json и не добавляют установленные модули в список зависимостей. Мы должны использовать — save, чтобы добавить установленный модуль в зависимости package.json и — save-dev, чтобы добавить его в devDependencies.

Если вы устанавливаете модуль без определения конкретной версии, npm добавит семантический диапазон в package.json как есть. Чтобы этого не произошло, используйте флаг —save-exact в дополнение к —save или —save-dev. Этот флаг заставит npm хранить точную версию модуля в package.json.

Обновление пакетов

Поскольку мы установили пакеты, иногда нам нужно обновить наши пакеты, чтобы получить новые функции. Для этого вам нужно запустить

Обновление $ npm

npm проверит и обновит все перечисленные пакеты до последней версии, которая удовлетворяет вашим ограничениям версий.

Обновление одного пакета

Для обновления одного пакета вы также можете указать его для обновления

$ npm update ‹package-name›

Удалить один пакет

Иногда вам не нужен определенный пакет, и вы хотите его удалить. Не рекомендуется вручную удалять пакет из папки node_modules, поскольку он может быть зависимостью для других пакетов. Чтобы безопасно удалить пакет, вам нужно запустить

$ npm удалить ‹имя-пакета›

Это полностью удалит все, что npm установило от его имени.

Вы должны использовать соответствующий флаг, чтобы сохранить изменения в package.json.

Например, если вы хотите удалить lodash из зависимостей package.json, вы должны запустить

$ npm удалить lodash — сохранить

Или из devDependencies

$ npm удалить lodash — save-dev

Список установленных пакетов

Чтобы получить список установленных пакетов, выполните команду

Список выполнения $ npm

В нем будут перечислены все пакеты, включая их зависимости. Установленные вами пакеты будут на глубине 0. Его зависимости будут на глубине 1, а последующие зависимости будут на глубине 2 и так далее. Для получения пакетов определенной глубины используйте команду

$ npm глубина списка ‹число›

Запуск задач

Файл package.json поддерживает формат для указания задач командной строки, которые можно запускать с помощью

$ npm run ‹имя_задачи›

Например:

{
«скрипты»: {
«start-dev»: «node lib/server-development»,
«start»: «node lib/server-production»
} ,
}

Очень часто эта функция используется для запуска Webpack:

{
«scripts»: {
«watch»: «webpack — watch — progress — colors — config webpack.conf.js»,
«dev»: «webpack — progress — colors — config webpack.conf.js»,
«prod»: «NODE_ENV=production webpack -p — config webpack.conf.js»,
},
}

Таким образом, вместо того, чтобы вводить эти длинные команды, которые легко забыть или ввести с ошибкой, вы можете запустить

$ npm run watch
$ npm run dev
$ npm run prod

Получать помощь

npm CLI имеет встроенную команду справки -n. Вы можете получить к нему доступ по

Справка по $ npm

Чтобы получить справку по конкретной команде, выполните

$ npm ‹команда› -h

Вы также можете найти помощь в документации по npm. Для этого используйте

$ npm help-search ‹command›

Теперь вы изучили все основы npm. Чтобы узнать больше о npm, вы можете перейти к документации на официальном Веб-сайте. Теперь вы можете начать использовать его в своих проектах, удачного взлома!

Спасибо за чтение! ❤

Если вам понравился этот пост, пожалуйста, поделитесь им со всеми вашими друзьями-программистами или лайкните Введение в NPM!