NPM (Node Package Manager)

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

C:\book>npm --version
6.14.6

Можно также воспользоваться командой npm -v:

C:\book\p1>npm -v
6.14.6

Для вывода полной информации выполняем следующую команду:

C:\book\p1>npm version
{
  p1: '1.0.0',
  npm: '6.14.6',
  ares: '1.16.0',
  brotli: '1.0.7',
  cldr: '37.0',
  http_parser: '2.9.3',
  icu: '67.1',
  llhttp: '2.0.4',
  modules: '72',
  napi: '6',
  nghttp2: '1.41.0',
  node: '12.18.3',
  openssl: '1.1.1g',
  tz: '2019c',
  unicode: '13.0',
  uv: '1.38.0',
  v8: '7.8.279.23-node.39',
  zlib: '1.2.11'
}

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

Создание пакета и добавление файла package.json

Давайте в каталоге C:\book создадим полноценный пакет Node.js под названием p1 (сокращение от package1, чтобы команды были короче). В Проводнике Windows создаем каталог p1, а затем перетаскиваем его в окно редактора VS Code, чтобы открыть каталог. Все дальнейшие действия по созданию файлов и каталогов производим на панели Проводник (см. разд. 1.5). Внутри каталога C:\book\p1 создаем файл с названием index.js и вставляем в него код из листинга 2.1.

Чтобы превратить каталог C:\book\p1 в полноценный пакет, нужно создать в нем файл с названием package.json. Для этого открываем командную строку и переходим в каталог пакета:

C:\Users\Unicross>cd C:\book\p1

C:\book\p1>

Обратите внимание: название каталога должно быть в составе приглашения для ввода команды. Если путь будет другим, то файл будет создан в другом каталоге. Для создания файла package.json выполняем команду npm init -y:

C:\book\p1>npm init -y
Wrote to C:\book\p1\package.json:

{
  "name": "p1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

После выполнения команды было выведено содержимое созданного файла. В данной команде мы указали флаг -y. Если флаг не указать, то программа будет запрашивать данные прямо в командной строке. Можно ввести данные, а можно на каждый запрос нажимать клавишу <Enter>. В конце диалога нужно подтвердить создание файла:

C:\book\p1>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible 
defaults.

See `npm help init` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (p1)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to C:\book\p1\package.json:

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

Is this OK? (yes)

Гораздо удобнее отредактировать созданный файл с помощью текстового редактора, чем что-то вводить в командной строке. Поэтому в команде мы указали флаг -y. Вместо флага -y можно указать флаг --yes:

C:\book\p1>npm init --yes

При использовании формата JSON следует учитывать следующие моменты:

  • данные хранятся в кодировке UTF-8;
  • все содержимое файла package.json заключено в фигурные скобки, внутри которых через запятую указываются пары:
<Свойство>: <Значение>
  • имена свойств и строки заключаются в двойные кавычки. Если в составе значения присутствует кавычка, то ее нужно экранировать с помощью обратного слеша:
"test": "echo \"Error: no test specified\" && exit 1"
  • значением свойства могут быть только данные различных типов: числа, строки, массивы (значения указываются внутри квадратных скобок) и объекты (значения указываются внутри фигурных скобок);
  • отредактировать файл можно любым текстовым редактором. Чтобы открыть файл на вкладке редактора VS Code, достаточно щелкнуть название файла на панели Проводник.

Давайте рассмотрим основные свойства внутри файла package.json:

  • name — название пакета;
  • version — версия пакета. Пакет можно загрузить в репозиторий и он станет доступным всем пользователям. Существует возможность установить пакет указанной версии, поэтому при изменении файлов проекта, следует сменить версию пакета. Нумерация версий должна следовать следующим правилам:
  • 1.0.0 — первая версия пакета:
  • 1.0.1 — изменение третьего числа означает исправление ошибок с обратной совместимостью;
  • 1.1.0 — изменение второго числа означает добавление новой функциональности с обратной совместимостью;
  • 2.0.0 — изменение первого числа означает изменение кода без обратной совместимости;
  • description — описание пакета, которое будет доступно всем пользователям, устанавливающим пакет из репозитория;
  • main — задает название главного исполняемого файла пакета. По умолчанию файл имеет название index.js. Именно так мы и назвали свой файл. Если хотите использовать другое название, то нужно отредактировать значение этого свойства;
  • scripts — объект с запускаемыми скриптами. По умолчанию при создании файла package.json добавляется скрипт с названием test, который выводит сообщение в окно консоли и завершает свое выполнение ошибкой. Подробно создание и запуск скриптов мы рассмотрим далее в этой главе;
  • keywords — массив с ключевыми словами, с помощью которых можно найти пакет в репозитории;
  • author — информация об авторе;
  • license — лицензия на использование пакета. Если хотите сделать пакет доступным всем пользователям, то укажите свободную лицензию MIT.

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

Для запуска программы внутри пакета из командной строки сначала делаем каталог C:\book\p1 текущим, а затем выполняем команды:

C:\book\p1>node index.js
Привет, мир!

C:\book\p1>

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

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов