NPM — менеджер пакетов от Node.js (Node.js Package Manager).
Консольная утилита создающая файл package.json и загружающая зависимости прописанные в нем.
Формат файла package.json
package.json — это файл в котором прописывается информация про ваш проект и про зависимости к библиотекам которые существую в нем. Формат примерно следующий:
{
"name": "cool name", // Название вашего проекта
"version": "0.99.88", // Версия вашего проекта
// Скрипты которые можно выполнять через npm
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
},
"description": "bla-bla", // Описание проекта
"main": "index.js"
"license": "MIT" // Лицензия
// Зависимости библиотек нужных для релизной версии проекта
"dependencies": {},
// Зависимости пакетов используемые при разработке
"devDependencies": {},
}
Создание файла package.json
Выполняем команду
npm init
Если вы знаете что параметры по умолчанию вас устраивают выполняйте команду
npm init --yes
Установить модуль (или приложение) через npm
Список доступных модулей\приложений доступен на npmjs.com. Но можно воспользоватся и командой
npm search _packagename_
Для установки пакета надо выполнить команду:
npm install _packagename_
Для примера вы хотите установить Express (самый популярный фреймворк на Node.js):
npm install express
Команда установить модули express в каталог /node_modules текущей директории.
При этом в файле package.json появится новая запись в разделе «dependencies»
Явное указание типа зависимости
С 5-й версии пакеты уже прописываются автоматически в зависимость dependencies.
Если версия младше, то для того что бы пакет попал в зависимость надо выполнить команду с колючем —save
npm install _packagename_ --save
Для того что бы прописать в зависимость пакетов для разработчиков (devDependencies)
npm install _packagename_ --save-dev
Глобальная установка модуля
Бывает некоторые инструменты вы используете не только в текущий проект. Например консольная утилита.
Смысл их устанавливать локально нету. Тогда ставим модуль с флагом —global или -g
npm install _packagename_ --global
Быстрая установка всех зависимостей
Если у вас есть файл package.json вы можете быстро установить все библиотеки которые были прописаны в нем.
Именно потому необязательно помещать в git каталог /node_modules.
Команда для быстрой установки всех зависимостей:
npm install
Что за файл package-lock.json ?
Отличный файл. Т.к. npm может содержать неявно указанную версию то данный файл содержит текущее состояние зависимостей. Включать в git.