Установка пакетов NPM
Существует два способа установки пакетов npm
:
Локально
пакеты устанавливаются в каталогnode_modules
родительского каталога. Владельцем каталога является текущий пользовательГлобально
устанавливаются в каталог{prefix}/lib/node_modules/
, владельцем которого являетсяroot
, префиксом в данном случае обычно является каталог/usr/
или/usr/local
. Это значит, что вам надо использоватьsudo
для глобальной установки пакетов, что может повлечь ошибки с полномочиями при разрешении сторонних зависимостей, а также создает проблему для безопасности
Локальная установка
Если вы хотите использовать пакеты в проекте, вам нужно воспользоваться локальной версией
. Будет создан каталог node_modules
в текущей папке проекта и туда скачаются указанные пакеты в раздел dependencies
:
npm install имя_пакета
Если нужно скачать пакет в раздел devDependencies
:
npm install имя_пакета --save-dev
Если у вас есть файла package.json
в текущем каталоге который контролирует в целом процесс устаноки, то устанавливается то, что указанно в этом файле, файл делится на два раздела для удобства разработчика, можно что-то для удобства использовать исключительно при разработке, а для боевой версии не выгружать:
dependencies
предназначен для установки пакетов необходимых для работы сайтаdevDependencies
предназначен для установки пакетов необходимых для разработки сайта
Есть команда которая установит все пакеты из dependencies
:
npm install --production
Есть команда которая установит все пакеты из devDependencies
:
npm install
Глобальная установка
Устанавливайте пакет глобально, если вы хотите его использовать как самостоятельную утилиту с командной строки, подключить к проекту глобальный пакет не получиться:
npm install -g имя_пакета
Если вы получите ошибку EACCESS
, то это значит, что у вас нет прав на изменение каталога, который npm
использует для глобальных пакетов. В этом случае вам нужно сделать одно из следующих:
- Изменить права доступа к каталогу, который npm использует по умолчанию
- Изменить каталог по умолчанию для npm
- Установить node c помощью пакетного менеджера
Вывод списка установленных пакетов
Вывести список установленных пакетов, можно с помощью команды:
npm list --depth 0
--depth 0
это уровень вложенности наиболее поверхностный, --depth 1
покажет зависимости.
Чтобы вывести список глобально установленных пакетов, запускаем ту же команду только с флагом -g
:
npm list -g --depth 0
Для того что бы убрать дубликаты пакетов и найти уязвимости, запускаем команду:
npm dedupe
Обновление пакетов
Для того что бы вывести устаревшие и отсутствующие пакеты, используем команду:
npm outdated
Если у нас много старых пакетов, то можно запустить npm update
, чтобы обновить наши пакеты до последней возможной версии в соответствии с нашим package.json
. Версия указана в столбце wanted
.
npm update
Если мы используем символ ^
перед нашими версиями в package.json
, то основная версия не будет обновляться. В целом это хорошо, так как при обновлении до новой основной версии могут возникнуть критические изменения.
Если мы хотим обновить всё до последней версии, можем использовать инструмент npm-update-all
:
npx npm-update-all
Куда устанавливаются пакеты
Установленная библиотека попадет в папку node_modules
. Если у библиотеки есть зависимости, они также будут установлены в эту папку как отдельные библиотеки.
Библиотеки, установленные через npm
, можно подключать к HTML файлу. Но делать этого не стоит, так как они представляют собой модули. Такие библиотеки следуюет подключать особым образом.
Перенос проекта
Папка node_modules
занимает много места и содержит много мелких файлов. Поэтому, когда вы заливаете свой проект на хостинг или даете проект коллеге, вам не стоит отдавать папку с библиотеками. Легко можно установить библиотеки, прописанные в файле package.json
, инициализировать установку прописанных библиотек можно одной командой:
npm install