Всі хто працює з JS 99 відсотків користуються NPM. Але не всі знають як опублікувати власний пакет. Це не складно.
Спочатку трошки питань та відповідей:
Що дає публікація пакета в NPM? Ваш код буде доступен всьому світу, будь хто зможе може користуватися вашою бібліотекою, виконавши просту NPM команду.
Що представляє з себе NPM пакет? Це група чи директорія файлів (переважно JS), розташована на серверах NPM під заданним імʼям. В пакет можно класти файли дозвільного типу. Мабуть другим за вживаністю типом файлу є CSS. Можно класти: графіку, відео та будь які інші формати.
Чи потрібно для публікації пакета мати аккаунт на Github? Зовсім ні. Єдине що потрібно – мати акаунт на сайті NPM.
Який максимальний розмір NPM пакета? Швидкий пошук дав таку відповідь: максимального розміру пакета не встановлено, але при відправці великих пакетів може спрацювати таймаут. Таймаут можно підвищіти додаванням до команди публікації -timeout=9999999.
Як ще можно дістатися до NPM пакета, окрім його встановлення? Є декілька глобальних CDN, котрі пропонують доступ до ваших (і не тільки) NPM пакетів. Найпоширеніші: unpkg.com та jsdelivr.com. Вони дають можливість дістатися до файлів пакету за спеціально сформованим URL, а ще пришвидшують доступ до контенту. У jsDelivr є ще одна дуже потужна функція – це доступ до файлів у Guthub через URL.
Підготовка до публікації в NPM
Спочатку треба переконатися що у вас є NPM аккаунт та локально встановлено останню версію NPM.
Зареєструвати новий аккаунт ви можете на сайті NPM. Зараз NPM вимагає двофакторну аутентифікацю через додаток.
Наступним кроком треба переконатися що ви маєте NPM встановленим у вашій операційній системі, для цього відкрийте Термінал та введіть наступну команду:
npm -v
У відповідь ви повинні отримати версію NPM:
9.8.1
Якщо ви отримали інформацію про те що команда відсутня, то ви можете встановити NPM разом з NodeJS за посиланням:
Якщо ви отримали інформацію про версію NPM, то можно або продовжити використовувати її, або оновитися до останньої.
Щоб оновити NPM до останньої версії використовуйте наступну команду:
npm install -g npm@latest
Після цих кроків ви повинні мати встановлений NPM.
Підготовка NPM пакета
Щоб підготувати пакет спершу треба підготувати директорію. Для цього в Терміналі створіть нову директорію та перейдіть в середену:
mkdir my—fresh-package
cd ./my-fresh-package
Далі потрібно ініціалізувати пакет (створити package.json) для цього всередені директорії виконуємо наступну команду:
npm init
Вас запитають мета-інформацію про пакет, таку як опис, імʼя та емейл автора і т.і. Можно скіпати шаги, натискаючи Enter.
Після описаних кроків у вас повинен зʼявитися файл package.json, який є манфіестом пакета, котрий окрім мета-інформації може мати посилання ні інші пакети.
Покладіть в директорію файл index.js, та додайте в нього одну строчку:
alert('Hello there!')
Вхід в NPM з консолі чи терміналу
Для публікації пакта треба увійти в NPM з Терміналу. Для цього введіть команду:
npm login
Для вас згнереується посилання яке необхідно відкрити в браузері, посилання виглядає приблизно так:

Після проходження авторизації в браузері – вас автоматично залогінить в Терміналі.
Публікація пакета в NPM
І тепер достатньо, знаходячись в директорії пакета, ввести команду:
npm publish
Після вам запропонують ще раз пройти двофактрону аутентифікацію в браузері:
npm notice
npm notice 📦 [email protected]
npm notice === Tarball Contents ===
npm notice 22B index.js
npm notice 212B package.json
npm notice === Tarball Details ===
npm notice name: my-fresh-package
npm notice version: 1.0.0
npm notice filename: my-fresh-package-1.0.0.tgz
npm notice package size: 287 B
npm notice unpacked size: 234 B
npm notice shasum: 4bf9ca8759988449c2b7b4bbfa582e91ca380802
npm notice integrity: sha512-GHTgvIrZitkkC[...]lr92GUS0ZeCkw==
npm notice total files: 2
npm notice
npm notice Publishing to https://registry.npmjs.org/ with tag latest and default access
Authenticate your account at:

Press ENTER to open in the browser...
І вже після цього ваш пакет буде миттєво опублікований, як результат ви отримаєте наступну інформацію:
+ [email protected]
Перевірка що NPM пакет опублікован
Щоб перевірити чи NPM пакет існує – відкрийте в браузе наступний URL:

Ви повинні побачити вміст index.js файла:
/**
* Skipped minification because the original files appears to be already minified.
* Original file: /npm/[email protected]/index.js
*
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
*/
alert('Hello there!')
Висновки
Тепер ви докладно знаєте як публікувати файли в NPM, більше того ви дізналися відповіді на декілька додаткових питань щодо розміру пакета та доступу до пакета через CDN.
Прийшов час створити свій перший NPM пакет!
Обговорення