Cat inside Amazon cardboard boxe on white brick wall background. Bergamo, Italy, 5 march 2021.
Содержание
Node Package Manager (npm) — это менеджер пакетов JavaScript, который управляет зависимостями в проектах, написанных на Node.js.
С помощью этого менеджера можно управлять установкой, обновлением и удалением пакетов (библиотек). В широком смысле npm — это крупнейший в мире реестр программного обеспечения.
В npm входят три компонента:
На веб-сайте вы можете находить пакеты, настраивать профили и управлять другими аспектами работы с npm. Например, вы можете настроить организацию для управления доступом к общедоступным или частным пакетам.
Интерфейс командной строки (CLI) работает в терминале, через который разработчики взаимодействуют с npm.
Реестр — это крупная общедоступная база данных с программным обеспечением JavaScript и сопутствующей мета-информацией.
Разработчики программного обеспечения с открытым исходным кодом во всем мире пользуются npm, чтобы делиться пакетами и заимствовать их.
С помощью npm вы можете:
Менеджер пакетов для Node.js npm появился в 2009 году, чтобы помочь разработчикам на JavaScript легко и быстро делиться упакованными модулями кода. Его разработал Райан Даль (Ryan Dahl).
Райан Даль. Фото: franksvalli
До создания npm у разработчиков не было удобного способа управления зависимостями, которые используются в проектах на Node.js. Каждый разработчик должен был самостоятельно искать и загружать необходимые модули. Это было очень неудобно и занимало много времени, поэтому как только появился npm, он сразу же стал неотъемлемой частью экосистемы Node.js.
Сегодня npm поставляется вместе с каждой установкой Node.js, и его экосистема продолжает быстро расти.
Использование npm дает множество преимуществ при разработке проектов на Node.js:
Использование npm значительно упрощает разработку проектов на Node.js, поэтому он стал одним из самых популярных менеджеров пакетов в мире.
Для работы с npm нужно установить Node.js.
Фото: RealToughCandy.com
Для публикации пакетов в пространствах имен вам нужно создать учетную запись на npmjs.com и настроить двухфакторную идентификацию (необязательно, но желательно).
Пакет — это файл или каталог, описание которого приведено в сопровождающем его файле package.json. Этот файл нужен для публикации пакета в реестре npm.
Рассмотрим процессы установки и создания пакетов подробнее.
Пакеты можно устанавливать на локальном и на глобальном уровне.
Установите пакет локально, если от него зависит ваш собственный модуль, например, если он указан в функции require()
. Это поведение npm по умолчанию.
Установка пакета из глобального пространства имен (unscoped package)
Пакеты из глобального пространства имен всегда общедоступны. Любой пользователь может найти такой пакет, загрузить его и установить.
Для установки общедоступного пакета выполните следующую команду в каталоге своего проекта:
npm install <package_name>
В текущем каталоге будет создан каталог с именем node_modules
(если он еще не был создан), и в него загрузится новейшая версия пакета.
Установка общедоступного пакета из указанного пространства имен (scoped public package)
Общедоступный пакет из указанного пространства имен может загрузить и установить любой пользователь, если во время установки указано имя пространства имен:
npm install @scope/package-name
Установка частного пакета (private package)
Частные (приватные) пакеты могут загрузить только те, кому предоставлен доступ для чтения этих пакетов. Эти пакеты всегда принадлежат пространству имен и его нужно указать при установке:
npm install @scope/private-package-name
Если вы используете npm 5.2 или выше, для выполнения пакетов на глобальном уровне рекомендуется использовать npx, утилиту для запуска npm-пакетов.
Если пакет установлен на глобальном уровне, то вы можете использовать его код как набор инструментов на локальном компьютере.
Чтобы загрузить и установить пакет на глобальном уровне, выполните следующую команду в командной строке:
npm install -g <package_name>
Если произойдет ошибка разрешений EACCES, может потребоваться переустановить npm с помощью менеджера версий или вручную изменить каталог по умолчанию.
Для размещения пакета в реестре нужен файл package.json, в котором приводится описание пакета. Он упрощает установку пакета и управление им. В файле package.json:
Для упрощения поиска рекомендуется использовать пользовательское поле description
в файле package.json.
Файл package.json можно создать двумя способами: (1) ответив на вопросы в CLI или (2) создав package.json по умолчанию.
Чтобы создать файл первым способом:
npm init
: npm init --scope=@scope-name
;npm init
.name
и version
), а также поля main
: name
: имя модуля.version
: начальная версия модуля.main
: идентификатор модуля, служащий основной точкой входа в вашу программу. Если это значение не задано, то по умолчанию используется файл index.js в корневом каталоге пакета.Чтобы создать файл package.json по умолчанию, запустите npm init --yes
.
Болеее подробные инструкции по созданию файла можно найти в официальной документации.
Поля name
и version
— обязательные для заполнения, вне зависимости от того, каким способом вы создаете файл package.json:
name
содержит имя пакета. Имя должно быть указано одним словом и может содержать символы нижнего регистра, дефиса и подчеркивания.version
должно соответствовать правилам семантического именования версий (semantic versioning guidelines). Через точку указывается три цифры: текущая старшая версия, текущая младшая и мелкие изменения. Например, 1.1.0.Если вы хотите указать информацию об авторе пакета, используйте следующий формат:
Ваше Имя <email@website.com> (http://website.com)
Весь код для создания и инициализации файла package.json может выглядеть так:
{ "name": "my-cool-package", "version": "1.0.0", "author": "Ваше Имя <email@website.com>" }
Подробнее о полях можно прочитать также в официальной документации.
Функция require()
— это функция Node.js для загрузки модулей. В ее аргументы передается название модуля, который нам нужен.
require()
может быть полезна, если мы хотим использовать сторонний модуль в своем пакете. Чтобы создать файл package.json с использованием этой функции, объявите ее как свойство объекта exports
. Так вы предоставите стороннему коду доступ к ней:
exports.logMsg = function() { console.log("Привет из модуля!"); }
npm init
;package.json
;npm install path/to/my-package
;npm publish
из корневого каталога пакета;https://npmjs.com/package/package-name
, заменив package-name
именем своего пакета.Важно! Не включайте в пакеты конфиденциальную информацию.
Чтобы опубликовать пакет npm в пользовательском пространстве имен, создайте учетную запись npm. Или, чтобы опубликовать пакет в пространстве имен организации, после создания учетной записи создайте организацию.
npmrc <profile-name>
;my-org
именем организации): npm init --scope=@my-org
;my-username
именем пользователя): npm init --scope=@my-username
.npm install path/to/my-package
;npm publish --access public
из корневого каталога пакета;https://npmjs.com/package/package-name
, заменив package-name
именем своего пакета.Чтобы опубликовать пакет npm в пользовательском пространстве имен, создайте платную учетную запись npm. Чтобы опубликовать пакет в пространстве имен организации, после создания учетной записи создайте платную организацию.
npmrc <profile-name>
;my-org
именем организации): npm init --scope=@my-org
;my-username
именем пользователя): npm init --scope=@my-username
.npm install path/to/my-package
;npm publish
из корневого каталога пакета;https://npmjs.com/package/package-name
, заменив package-name
именем своего пакета.npm — это важный и обязательный инструмент для разработки проектов на Node.js. Благодаря тому, что в npm-репозитории содержится большое количество пакетов, разработчики могут быстро и удобно добавлять функциональность в свои проекты, используя готовые модули и библиотеки.
Одно из основных преимуществ npm — простота установки и управления зависимостями. С помощью команды npm install
можно быстро установить все необходимые пакеты для проекта, а при управлении зависимостями npm автоматически устанавливает и обновляет зависимости пакетов.
Кроме того, npm предоставляет возможность публикации пакетов, что позволяет разработчикам делиться своими модулями и библиотеками с другими разработчиками по всему миру. Так можно создавать более качественные и эффективные проекты благодаря взаимодействию и сотрудничеству между разработчиками.
Подробнее об использовании пакетов npm можно узнать, посмотрев это видео:
Пример создания своего пакета npm подробно рассматривается здесь:
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…