09 Модуль - Node.js, NPM, Webpack -- 02 NPM Flashcards
Чтобы использовать все богатство инструментов (или пакетов) Node.js нам нужна возможность устанавливать и управлять ими. Для этого создан
NPM (node package manager) - пакетный менеджер Node.js. Он устанавливает нужные пакеты и предоставляет удобный интерфейс для работы с ними.
NPM состоит из трех основных компонентов:
Сайт npmjs.com — используется для поиска и ознакомления с документацией пакетов.
Интерфейс командной строки (CLI) — запускается из терминала и предоставляет набор комманд для работы с реестром и пакетами. Позволяет создавать скрипты для запуска в терминале.
Реестр пакетов (registry) — большая общедоступная база данных инструментов разработки (пакетов).
Пакет (package) —
небольшая JS-библиотека, решающая специфическую задачу.
Каждый проект начинается с создания файла
package.json — он отслеживает зависимости, содержит служебную информацию, позволяет писать npm-скрипты, и служит инструкцией при создании нового проекта на основе уже готовых настроек.
Создать файл package.json можно
npm-командой init, тем самым инициализировав проект в текущей папке.
npm init
Скрипты позволяют запускать на исполнение установленные пакеты. Используя npm-скрипты, можно создавать целые системы сборки проекта.
Автоматизируем запуск index.js. Для этого в файле package.json в поле scripts добавим скрипт запуска start.
{ "scripts": { "start": "node index.js" } }
Если создать скрипт с любым другим именем, кроме start или test, он будет запускаться как
npm run имя-скрипта — не забудьте run.
После того как файл package.json создан, можно добавить зависимости в проект. Зависимостью называют
npm-пакет который используется при разработке. Это всевозможные утилиты и библиотеки.
Одна из возможностей которые предоставляет npm — установка пакетов, которые извлекаются из реестра и распаковываются в папку
node_modules в корне проекта.
NPM загрузил validator и поместил его в node_modules — папку, в которой
npm install validator
будут находиться все внешние зависимости.
Не добавляйте папку node_modules в систему контроля версий
, у всех разработчиков она будет своя. Если вы используете Git, не забывайте добавить папку node_modules в файл .gitignore
Обратите внимание на созданный файл package-lock.json — это
журнал снимков дерева зависимостей проекта. Он гарантирует что команда разработчиков использует одни и те же версии зависимостей. NPM автоматически обновляет его при добавлении, удалении и обновлении пакетов.
npm install validator
В package.json появилась новая зависимость в поле
dependencies. Это означает, что validator версии 11.1.0 был установлен как зависимость и готов к работе. Пакеты постоянно обновляются, версия может отличаться. { "dependencies": { "validator": "^11.1.0" } }
Для того чтобы получить интерфейс пакета в коде, необходимо вызвать функцию
require(‘имя-модуля’), аргументом передав ей имя модуля, без определения пути, это называется абсолютный импорт. Путь не нужен, так как по умолчанию поиск модуля будет происходить в папке node_modules. Результатом своего выполнения функция вернет интерфейс модуля — объект с методами или просто функцию, зависит от пакета.
const validator = require(‘validator’);
const validateEmail = email => { return validator.isEmail(email); };
console.log(
‘Is mango@mail.com a valid email?: ‘,
validateEmail(‘mango@mail.com’),
);
console.log(
‘Is Mangozedog.com a valid email?: ‘,
validateEmail(‘Mangozedog.com’),
);
Предположим, что установленная в предыдущем примере версия validator вызывает проблемы с совместимостью. Мы можем удалить этот пакет и поставить более старую версию.
npm uninstall validator