Итак, в моей прошлой статье, дауууу еще в… сентябре? Я хотел выкупить себя тем, что закончил этой строкой:

… Мы узнаем о npm и о том, как использовать пакеты npm для запуска новейших функций ES6 на Node.js.

Три месяца, две недели и Патридж на грушевом дереве в конце концов, вот и я, выплачиваю свой долг. Надеюсь, к концу этой статьи вы поймете эти слова: менеджер пакетов, npm, пакет, package.json и package-lock.json.

Так что же такое диспетчер пакетов?

Вот один (или два) лайнера:

Менеджер пакетов помогает вам управлять внешними модулями, которые необходимы для полноценного функционирования вашей программы.

Слишком сложно? Я сломаю это. Но сначала, если хотите, можете прочитать о модулях здесь.

Допустим, вы создаете сложное приложение под названием Youbook (например, Facebook, но вы сами), но вам нужна простая программа, которая фиксирует время, когда что-то происходит. Теперь вы помните, что ваш партнер Джон недавно написал именно такую ​​программу.

Что вы делаете?

Вы также можете решить написать свою, что нормально для одной программы, но это не имеет особого смысла, когда доходит до 20 или 200 таких небольших программ, не так ли?

Вы можете попросить Джона поделиться с вами своим отлично работающим кодом. Код Джона добавляется в виде модуля, импортируется в ваш файл, и вы можете использовать его сразу. Не тратьте время зря.

Но что, если вам нужен код, написанный Циромой из Баучи (Нигерия), Квеси из Ганы или Коларовым из Сербии? Как вы это делаете? Видите ли, эти люди могут написать свой код, загрузить его в реестр, откуда вы можете установить эти модули (или пакеты, как они называются в этом контексте), используя package manager и импортируйте в свой проект. Сладкий как пирог.

В общих чертах, менеджер пакетов помогает вам добавлять, удалять или обновлять внешние фрагменты кода, написанные вами или кем-то еще в вашем текущем проекте, следуя специальным командам, которые вы вводите. Таким образом, менеджер пакетов может добавлять зависимости к вашей программе из базы данных, называемой реестром, с помощью следующих команд, отправленных с его command client . Вы также можете удалять и обновлять зависимости с помощью этого командного клиента. Командный клиент - это ключевое слово, которое предшествует любой инструкции, которую вы даете менеджеру пакетов.

Еще одно важное значение диспетчера пакетов заключается в том, что он отслеживает каждый пакет, который вы добавляете в свою программу, включая версию, чтобы гарантировать, что каждый, кто пытается использовать вашу программу в любой точке мира, сделает это. так что в той же среде, что и вы. Это в значительной степени предотвращает оправдание «Это работает на моем компьютере» при создании программного обеспечения.

Существуют разные типы менеджеров пакетов для разных языков программирования. Самыми популярными для JavaScript являются npm и yarn. Я буду говорить о npm в будущем.

npm

Итак, мы вернулись к теме этой статьи. npm - это менеджер пакетов по умолчанию для NodeJS. Он поставляется с установщиком NodeJS, и вы получите к нему доступ после установки NodeJS. npm командный клиент называется npm и сохраняет пакеты в онлайн-базе данных, называемой реестр npm.

Начнем с использования npm.

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

Создайте папку в своей системе и откройте ее в своем любимом текстовом редакторе. (Я использую VS Code).

Откройте окно терминала или командную строку и перейдите к расположению вашей папки: (npm - это имя моей папки)

cd C:\Users\USER\Documents\npm-folder

Пришло время инициализировать npm. Для инициализации нам нужно будет запустить команду с помощью клиента команд (npm). Запустите эту команду, чтобы запустить npm в своем проекте

npm init

Здесь вы получите сообщение, а также пошаговое руководство, а также это

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

Мы скоро вернемся к этому. Заполните поля, как указано, и нажмите Enter в некоторых полях, таких как «версия». Он подберет для вас значение по умолчанию, нажмите Enter, чтобы принять, иначе введите желаемое значение. Когда вы закончите, проверьте папку своего проекта, и вы найдете файл package.json, заполненный информацией, которую вы указали при инициализации npm.

Так что же такое package.json?

Package.json выполняет множество функций, включая хранение метаданных вашего проекта, он также содержит все зависимости, используемые в вашем проекте, а также сценарии . Сценарии - это команды, которые помогают автоматизировать повторяющиеся задачи в вашем проекте. Например, чтобы запустить файл Nodejs, вы можете использовать:

node file-name.js

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

"scripts": {
"start": "node --some-long-dependency-command index.js"
},

Чтобы запустить эту команду, вам нужно только запустить приведенную ниже команду в своем терминале, и команда будет выполнена.

npm run start

Давайте установим наш первый пакет npm, Chalk. Мел позволяет писать на терминал разными цветами. Создайте файл index.js и запустите эту команду в терминале.

npm install [email protected]

npm install ‹package-name› - это команда для установки пакетов npm. Версия добавляется (npm install ‹package-name› @ ‹package-version›), чтобы гарантировать, что каждый компьютер, на котором запущен код, запускает его, используя одни и те же версии одних и тех же пакетов.

Теперь в вашем файле package.json появится новое поле с именем dependencies. Каждый добавляемый вами пакет записывается здесь вместе с его версией.

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

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

npm install

Итак, вернемся к файлу index.js. Пришло время использовать нашу зависимость (Мел).

Сначала мы импортируем зависимость в нашу рабочую папку:

const chalk = require('chalk')

И теперь мы можем использовать его как угодно в нашем файле:

console.log(
chalk.green("This is ") +
chalk.italic.yellow("my first ") +
chalk.bold.red("dependency")
);

Чтобы запустить наш файл, сначала мы добавляем начало скрипту в нашу папку package.json.

"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},

А потом запускаем в терминале

npm run start

После чего вы должны получить красочную консольную выписку.

Это была довольно длинная статья. В следующем мы поговорим о том, как использовать оператор ES6 «import» в NodeJS вместо «require», как мы сделали с мелом выше.