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", "версія": "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 докладно розглянуто тут:
Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…
У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…
Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…
Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…
Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…
Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…