Как проверить какие модули установлены в npm. Введение в пакетный менеджер NPM для начинающих

Последнее обновление: 18.11.2018

Кроме встроенных и кастомных модулей Node.js существует огромный пласт различных библиотек и фреймворков, разнообразных утилит, которые создаются сторонними производителями и которые также можно использовать в проекте, например, express, grunt, gulp и так далее. И они тоже нам доступны в рамках Node.js. Чтобы удобнее было работать со всеми сторонними решениями, они распространяются в виде пакетов. Пакет по сути представляет набор функциональностей.

Для автоматизации установки и обновления пакетов, как правило, применяются систему управления пакетами или менеджеры. Непосредственно в Node.js для этой цели используется пакетный менеджер NPM (Node Package Manager). NPM по умолчанию устанавливается вместе с Node.js, поэтому ничего доустанавливать не требуется. Но можно обновить установленную версию до самой последней. Для этого в командной строке/терминале надо запустить следующую команду:

Npm install npm@latest -g

Чтобы узнать текущую версию npm, в командной строке/терминале надо ввести следующую команду:

Для нас менеджер npm важен в том плане, что с его помощью легко управлять пакетами. К примеру, создадим на жестком диске новую папку modulesapp (В моем случае папка будет находиться по пути C:\node\modulesapp ).

Далее для примера установим в проект express . Express представляет легковесный веб-фреймворк для упрощения работы с Node.js. В данном случае мы не будем пока подробно рассматривать фреймворк Express, так как это отдельная большая тема. А используем его лишь для того, чтобы понять, как устанавливаются сторонние модули в проект.

Для установки функциональности Express в проект вначале перейдем к папке проекта с помощью команды cd . Затем введем команду

Npm install express

После установки express в папке проекта modulesapp появится подпапка node_modules , в которой будут хранится все установленные внешние модули. В частности, в подкаталоге node_modules/express будут располагаться файлы фреймворка Express.

// получаем модуль Express const express = require("express"); // создаем приложение const app = express(); // устанавливаем обработчик для маршрута "/" app.get("/", function(request, response){ response.end("Hello from Express!"); }); // начинаем прослушивание подключений на 3000 порту app.listen(3000);

Первая строка получает установленный модуль express, а вторая создает объект приложения.

В Express мы можем связать обработку запросов с определенными маршрутами. Например, "/" - представляет главную страницу или корневой маршрут. Для обработки запроса вызывается функция app.get() . Первый параметр функции - маршрут, а второй - функция, которая будет обрабатывать запрос по этому маршруту.

И чтобы сервер начал прослушивать подключения, надо вызвать метод app.listen() , в который передается номер порта.

Запустим сервер командой node app.js:

И в адресной строке браузера введем адрес http://localhost:3000/ :

Файл package.json

Для более удобного управления конфигурацией и пакетами приложения в npm применяется файл конфигурации package.json . Так, добавим в папку проекта modulesapp новый файл package.json :

{ "name": "modulesapp", "version": "1.0.0" }

Здесь определены только две секции: имя проекта - modulesapp и его версия - 1.0.0. Это минимально необходимое определение файла package.json. Данный файл может включать гораздо больше секций. Подробнее можно посмотреть в документации .

Теперь снова добавим express с помощью следующей команды:

Npm install express --save

Флаг --save указывает, что информацию о добавленном пакете надо добавить в файл package.json.

И после выполнения команды, если мы откроем файл package.json , то мы увидим информацию о пакете:

{ "name": "modulesapp", "version": "1.0.0", "dependencies": { "express": "^4.14.0" } }

Информация обо всех добавляемых пакетах, которые используются при запуске приложения, добавляется в секцию dependencies .

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

Эта команда возьмет определение всех пакетов из секций dependencies и загрузит их в проект.

devDependencies

Кроме пакетов, которые применяются в приложении, когда оно запущено, например, express, то есть в состоянии "production", есть еще пакеты, которые применяются при разработке приложения и его тестировании. Такие пакеты добавляются в другую секцию - devDependencies . В вышеприведенном примере она не определена, но если бы мы добавили какой-нибудь grunt или gulp, то они бы были именно в секции devDependencies.

Например, загрузим в проект пакет jasmine-node , который используется для тестирования приложения:

Npm install jasmine-node --save-dev

Флаг --save-dev указывается, что информацию о пакете следует сохранить в секции devDependencies файла package.json:

{ "name": "modulesapp", "version": "1.0.0", "dependencies": { "express": "^4.14.0" }, "devDependencies": { "jasmine-node": "^1.14.5" } }

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

Для удаления пакетов используется команда npm uninstall . Например:

Npm uninstall express

Эта команда удаляет пакет из папки node_modules , в то же время в файле package.json информация о данном пакете остается. Чтобы удалить информацию также и из package.json, применяется флаг --save:

Npm uninstall express --save

Семантическое версионирование

При определении версии пакета применяется семантическое версионирование. Номер версии, как правило, задается в следующем формате "major.minor.patch". Если в приложении или пакете обнаружен какой-то баг и он исправляется, то увеличивается на единицу число "patch". Если в пакет добавляется какая-то новая функциональность, которая совместима с предыдущей версией пакета, то это небольшое изменение, и увеличивается число "minor". Если же в пакет вносятся какие-то большие изменения, которые несовместимы с предыдущей версией, то увеличивается число "major". То есть глядя на разные версии пакетов, мы можем предположить, насколько велики в них различия.

В примере с express версия пакета содержала, кроме того, дополнительный символ карет: "^4.14.0". Этот символ означает, что при установке пакета в проект с помощью команды npm install будет устанавливаться последняя доступная версия от 4.14.0. Фактически это будет последняя доступная версия в промежутке от 4.14.0 до 5.0.0 (>=4.14.0 и <5.0.0). Более подробно про сематическое версионирование в npm можно посмотреть .

Команды npm

NPM позволяет определять в файле package.json команды, которые выполняют определенные действия. Например, определим следующий файл app.js :

Let name = process.argv; let age = process.argv; console.log("name: " + name); console.log("age: " + age);

В данном случае мы получаем переданные при запуске приложению параметры.

И определим следующий файл package.json :

{ "name": "modulesapp", "version": "1.0.0", "scripts" : { "start" : "node app.js", "dev" : "node app.js Tom 26" } }

Здесь добавлена секция scripts , которая определяет две команды. Вообще команд может быть много в соответствии с целями и задачами разработчика.

Первая команда называется start . Она по сути выполняет команду node app.js , которая выполняет код в файле app.js

Вторая команда назвывается dev . Она также выполняет тот же файл, но при этом также передает ему два параметра.

Названия команд могут быть произвольными. Но здесь надо учитывать один момент. Есть условно говоря есть зарезервированные названия для команд, например, start , test , run и ряд других. Их не очень много. И как раз первая команда из выше определенного файла package.json называется start. И для выполнения подобных команд в терминале/командной строке надо выполнить команду

Npm [название_команды]

Например, для запуска команды start

Npm start

Команды с остальными названия, как например, "dev" в вышеопределенном файле, запускаются так:

Npm run [название_команды]

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

Современная разработка очень тесно связана с использованием Node JS. В свою очередь Node JS используется как оболочка для работы с NPM и его пакетами (всем известная папка node_modules).

В данной статье я постараюсь перечислить все самые популярные команды для NPM: установка, обновление, удаление пакетов и др.

Инструкции по NPM

И всё таки думаю что стоит для начала упомянуть пару важных консольных команд для Node JS.

Как посмотреть список всех команд Node.js

Чтобы посмотреть список всех команд доступных в Node.js, для этого нужно ввести в консоли команду:

Как узнать версию установленного Node.js

Для этого есть команда node --version или короткий вариант команды этой же команды node -v . Так как краткость - сестра таланта, я пользуюсь командой:

Команды для NPM и работы с пакетами, модулями

Если расписывать команды NPM-а, то так же начнём с того как в консоли вывести все доступные команды нпма.

Cписок всех доступных команд пакетного менеджера (npm) выведится если в консоли ввести команду npm help или сокращённый вариант npm -h:

Команда npm -h вывалит в консоли такой список доступных команд:

access, adduser, audit, bin, bugs, c, cache, ci, cit, completion, config, create, ddp, dedupe, deprecate, dist-tag, docs, doctor, edit, explore, get, help, help-search, hook, i, init, install, install-test, it, link, list, ln, login, logout, ls, outdated, owner, pack, ping, prefix, profile, prune, publish, rb, rebuild, repo, restart, root, run, run-script, s, se, search, set, shrinkwrap, star, stars, start, stop, t, team, test, token, tst, un, uninstall, unpublish, unstar, up, update, v, version, view, whoami

Чтобы посмотреть инструкции для какой то из этих команд, для этого нужно ввести в консоли команду npm help COMANDA , где COMANDA - это название команды из списка.

Например посмотреть инструкции для обновления:

Npm help update

В установленном по умолчанию браузере откроется страница с инструкциями по данной команде. Инструкции находятся локально и не требуют подключения к интернету.

Как узнать версию NPM

Чтобы узнать установленную версию npm, нужно ввести в терминале команду npm --version или сокращённый вариан данной команды npm -v:

Как обновить NPM

В отличии от Node.js, NPM знает как обновить себя! Чтобы обновить свой NPM до последней версии, вводим в терминале такую команду:

Npm install npm@latest -g

Npm update npm -g

Инициализация пакетов NPM

Инициализация пакетов - это процесс быстрой установки пакетов NPM-а, которые прописаны в файле package.json

Команда npm init создаст файл package.json или установит прописанные пакеты из файла package.json если он уже создан.

Npm init

Работа с NPM-пакетами

Установить пакеты из файла package.json:

Npm install

npm скачает и установит все пакеты указанные в файле package.json

Посмотреть список установленных пакетов:

Npm list --depth=0

Посмотреть список установленных пакетов, которые требуют обновления:

Npm outdated --depth=0

Список глобально установленных пакетов требующих обновления:

Npm outdated --depth=0 -g

Команда npm install package - позволяет установить любой пакет по его имени. Если при этом к команде добавить префикс -g пакет будет установлен глобально на весь компьютер.

Npm install PACKAGE

Npm install PACKAGE --save-dev

Глобальная установка пакета:

Npm install PACKAGE -g

Удалить пакет:

npm r PACKAGE

Удалить глобально установленный пакет:

npm rm PACKAGE -g

Обновить пакеты:

npm up

И в заключение, если вы пользуетесь конролем версий Git, то незабудьте добавить в файл .gitignore исключение для папки node_modules , чтобы гит не индексировал файлы из этой папки. Для этого создайте файл .gitignore если он у вас ещё не создан и пропишите в нём отдельной строкой:

Node_modules/

Обновление пакетов NPM при изменении мажорной версии

Если у пакета NPM сменилась версия на мажорную, то есть была изменена первая цифра в версии пакета (например установлена версия пакета 4.19.1, а последняя версия 5.3.0), то она не обновится командой npm up . Это сделано в целях безопасности.

Для обновления мажорной версии есть такая команда:

Npm i -g npm-check-updates && ncu -a && npm i

В итоге будут обновлены все пакеты.

Делайте такое обновление только в случае если вы уверены и понимаете что делаете. Мажорная версия несёт изменения для которых есть изменения в настройках.

Посмотрите это видео, где есть понятное объяснение по версиям пакетов NPM:

JavaScript является неотъемлемой частью веб-разработки. Front-end разработчики используют JavaScript для усовершенствования пользовательского интерфейса, добавление интерактивности, AJAX передачи данных и т.д..

На самом деле при достаточных знаниях JavaScript вы сможете работать с "полным стеком" веб-приложений. Ключ к этому - Node.js, который делает возможность запускать JavaScript на стороне сервера.

Node.js также используется в разработке приложений для настольных компьютеров и средств деплоя (развертывания) приложений, которые делают веб-приложение проще. Например, установив Node.js на свой компьютер, вы сможете быстро конвертировать CoffeeScript в JavaScript, SASS в CSS, а также уменьшить размер вашего HTML, JavaScript и графических файлов.

Кроме установленного Node.js вам также понадобится NPM, который предназначен для установки и управления модулями Node.js. С NPM вы сможете намного проще добавлять много новых и полезных инструментов в ваш проект.

Как работать с Node.js

Node.js не является программой, которую вы просто запускаете нажав по иконке, вы не найдете его на панели задач или в списке приложений. Для использования Node.js вам необходимо выполнять команды (инструкции) в консоле (командной строке), так что будьте готовы к этому.

Установка Node.js

Установка Node.js и NPM довольно проста, все делается с помощью установочного пакета, который можно загрузить с веб-сайта Node.js: .

1. Загрузите установщик для Windows с официального сайта

2. Запустите программу установки

3. Следуйте инструкциям в программе установки

4. Перезагрузите компьютер для корректной работы Node.js

Проверяем корректность установки Node.js и NPM

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

Проверяем Node.js

Для проверки Node.js необходимо открыть командную строку (консоль (Win + R и введите cmd)) и выполнить команду:

Команда вернет текущую версию node.js

Проверяем NPM

Для того, чтобы проверить установлен ли NPM необходимо в командной строке (консоле) выполнить команду:

Команда вернет текущую версию NPM

Пробуем как node.js работает с файлом

Для примера создайте файл test.js со следующим содержанием:

Console.log("Node is installed!");

И в командной строке (консоле) выполните следующую команду:

Node test.js

Как обновить Node.js и NPM

Для установки новых версий Node.js и NPM просто скачайте последнюю версию пакета с официального сайта и запустите ее.

Как удалить Node.js и NPM

Node.js и NPM удаляются так же как и большинство программ в Windows. Т.е. Control Panel => Uninstall a program выбираем Node.js жмем правую кнопку мыши и выбираем Uninstall.

Пакеты Node.js

Так же на сайте NPM () перечислены все официальные пакеты Node.js.

Существует достаточно документации, в которой раскрывается вопрос «Почему Node?». Но что для меня действительно важнее, это не где Node находится сегодня, а где он будет завтра. Без сомнения, сообщество Rails принесло много к столу, но все эти замечательные идеи сложно проглотить, потому что они оказались заперты внутри Ruby. Каким бы потрясающим не был Ruby, не каждый желает стать разработчиком на Ruby.

В зависимости от процесса установки, npm может быть установлен, а может быть и нет. Для проверки просто запустите:

$ npm --version

Если npm не установлен, выполните следующее:

$ curl http://npmjs.org/install.sh | sh

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

Использование npm

Теперь, когда npm установлен, все зарегистрированные пакеты являются просто командой в консоли. Для базовой установки пакета выполните:

$ npm install <пакет>

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

Чтобы сделать это, вам нужно добавить флаг -g в процессе установки:

$ npm install -g <пакет>

В зависимости от того, как Node.js установлен в вашей системе, у вас может не оказаться доступа для установки глобального пакета. Чтобы обойти это, просто добавьте команду sudo в начале:

$ sudo npm install -g <пакет>

Использование npm с проектом

Наиболее распространённым примером использования npm является поддержка манифеста зависимостей для вашего проекта. Всё это хранится в файле package.json .

Вы можете создать этот файл самостоятельно, хотя также есть методы сгенерировать этот файл. В любой папке просто запустите npm init и в консоли вы пройдёте через ряд вопросов, в результате получите что-то вроде такого:

{ "name": "toss-this", "version": "0.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }

Если в вашем проекте уже содержится package.json, добавить в него пакет очень легко с помощью npm install. Просто включите флаг --save в команду следующим образом:

$ npm install <пакет> --save

Добавление Grunt в проект обновит package.json, добавив объект dependencies в файл:

{ "name": "toss-this", "version": "0.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "grunt": "^0.4.5" } }

В добавление к этому, если вы хотите указать зависимость только для разработки, а не для рабочего проекта, то передайте флаг -dev:

$ npm install <пакет> --save-dev

Добавив Gulp как зависимость для разработки, в файле package.json появится объект devDependencies:

{ "name": "toss-this", "version": "0.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "grunt": "^0.4.5" }, "devDependencies": { "gulp": "^3.6.2" } }

Узнайте больше о npm

npm удивительно сложная утилита, когда дело доходит до управления пакетами. Смотрите эту шпаргалку по npm для получения дополнительной подробной информации.

Узнайте больше о package.json

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

n pm. это менеджер пакетов JavaScript, который может быть использован для установки, совместного использования и распространения кода, а также для управления зависимостями в ваших проектах. Он полностью написан на JavaScript, как вдохновение от других подобных проектов, как PEAR для PHP или CPAN для Perl. На этом уроке мы покажем вам, как установить npm на Ubuntu 16.04 в качестве операционной системы.

Самое первое, что вам нужно сделать, это и обновить программное обеспечение системы до последней доступной версии. Вы можете сделать это с помощью следующей команды:

Sudo apt-get update && sudo apt-get -y upgrade

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

npm поставляется в комплекте с Node.js, поэтому установить NPM вам нужно только если установили Node.js на вашем . Чтобы установить Node.js 4.x LTS на Ubuntu 16.04 , выполните следующие команды:

Curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs

В качестве альтернативы, для установки Node.js 6.x на Ubuntu 16.04 , которая является текущей версии Node.js, выполните следующие команды:

Curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install -y nodejs

Чтобы убедиться, что установка прошла успешно, вы можете проверить версию npm:

Выход должен быть аналогичен приведенному ниже:

# npm -v 2.15.9

Хороший способ начать использовать npm, чтобы прочитать справочную страницу npm или документацию npm. Чтобы проверить страницу npm справки, введите следующую команду:

Npm help

Вот страница npm help:

# npm help Usage: npm where is one of: access, add-user, adduser, apihelp, author, bin, bugs, c, cache, completion, config, ddp, dedupe, deprecate, dist-tag, dist-tags, docs, edit, explore, faq, find, find-dupes, get, help, help-search, home, i, info, init, install, issues, la, link, list, ll, ln, login, logout, ls, outdated, owner, pack, ping, prefix, prune, publish, r, rb, rebuild, remove, repo, restart, rm, root, run-script, s, se, search, set, show, shrinkwrap, star, stars, start, stop, t, tag, team, test, tst, un, uninstall, unlink, unpublish, unstar, up, update, upgrade, v, version, view, whoami npm -h quick help on npm -l display full usage info npm faq commonly asked questions npm help search for help on npm help npm involved overview Specify configs in the ini-formatted file: /root/.npmrc or on the command line via: npm --key value Config info can be viewed via: npm help config [email protected] /usr/lib/node_modules/npm

Документация npm доступна на

Статьи по теме: