09 Модуль - Node.js, NPM, Webpack -- 02 NPM Flashcards

1
Q

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

A

NPM (node package manager) - пакетный менеджер Node.js. Он устанавливает нужные пакеты и предоставляет удобный интерфейс для работы с ними.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

NPM состоит из трех основных компонентов:

A

Сайт npmjs.com — используется для поиска и ознакомления с документацией пакетов.
Интерфейс командной строки (CLI) — запускается из терминала и предоставляет набор комманд для работы с реестром и пакетами. Позволяет создавать скрипты для запуска в терминале.
Реестр пакетов (registry) — большая общедоступная база данных инструментов разработки (пакетов).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Пакет (package) —

A

небольшая JS-библиотека, решающая специфическую задачу.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Каждый проект начинается с создания файла

A

package.json — он отслеживает зависимости, содержит служебную информацию, позволяет писать npm-скрипты, и служит инструкцией при создании нового проекта на основе уже готовых настроек.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Создать файл package.json можно

A

npm-командой init, тем самым инициализировав проект в текущей папке.
npm init

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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

Автоматизируем запуск index.js. Для этого в файле package.json в поле scripts добавим скрипт запуска start.

A
{
  "scripts": {
    "start": "node index.js"
  }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Если создать скрипт с любым другим именем, кроме start или test, он будет запускаться как

A

npm run имя-скрипта — не забудьте run.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

После того как файл package.json создан, можно добавить зависимости в проект. Зависимостью называют

A

npm-пакет который используется при разработке. Это всевозможные утилиты и библиотеки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Одна из возможностей которые предоставляет npm — установка пакетов, которые извлекаются из реестра и распаковываются в папку

A

node_modules в корне проекта.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

NPM загрузил validator и поместил его в node_modules — папку, в которой
npm install validator

A

будут находиться все внешние зависимости.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Не добавляйте папку node_modules в систему контроля версий

A

, у всех разработчиков она будет своя. Если вы используете Git, не забывайте добавить папку node_modules в файл .gitignore

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Обратите внимание на созданный файл package-lock.json — это

A

журнал снимков дерева зависимостей проекта. Он гарантирует что команда разработчиков использует одни и те же версии зависимостей. NPM автоматически обновляет его при добавлении, удалении и обновлении пакетов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

npm install validator

В package.json появилась новая зависимость в поле

A
dependencies. Это означает, что validator версии 11.1.0 был установлен как зависимость и готов к работе. Пакеты постоянно обновляются, версия может отличаться.
{
  "dependencies": {
    "validator": "^11.1.0"
  }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Для того чтобы получить интерфейс пакета в коде, необходимо вызвать функцию

A

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’),
);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Предположим, что установленная в предыдущем примере версия validator вызывает проблемы с совместимостью. Мы можем удалить этот пакет и поставить более старую версию.

A

npm uninstall validator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

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

A

В команде установки номер версии указывается после символа @.
npm install validator@1.0.0
Установка пакетов определенный версии используется в коммерчерских проектах, для того чтобы гарантировать работу кодовой базы и возможность долгосрочной поддержки.

17
Q

–save — указывает что добавляется зависимость которая

A

войдет в финальный продукт. Пакет будет установлен локально, в папку node_modules, и будет добавлена запись в поле dependencies в package.json.

18
Q

–save-dev — указывает что

A

добавляется зависимость разработки. Пакет будет установлен локально, в папку node_modules, и будет добавлена запись в поле devDependencies в package.json.

19
Q

–global — указывает что

A

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

20
Q

Управление кэшем

A

npm cache clean

21
Q

npm update —

A

обновит все пакеты до максимально разрешенной версии.

22
Q

npm outdated — используется для

A

поиска обновлений, обнаружит совместимые версии программно.