Що таке npm і навіщо він потрібен

Що таке npm і навіщо він потрібен

Як підтягувати сторонні пакети.

Node.js — платформа, за допомогою якої створюють серверні програми на JavaScript. У її основі — модульна система, яка дає змогу підтягувати окремі пакети в додаток.

Для керування залежностями у Node.js використовують Node Package Manager (npm). Він завантажує та встановлює необхідні для проєкту модулі зі сторонніх джерел.

Розповідаємо, як працювати з npm.

Ініціалізація та встановлення пакетів

Розробка проводиться на різних пристроях, а команда може встановити необхідні модулі в терміналі. Пакети в такому разі підтягуються з відкритих чи приватних репозиторіїв. Знайти та прочитати інформацію про пакет (опис, версійність, частота внесення змін) можна в реєстрі npm.

Частота завантажень за тиждень (Weekly Downloads) і кількість залежностей (Dependents) свідчать про надійність пакета — чим більше, тим частіше його використовують розробники.

Також інформацію про пакет можна переглянути за допомогою команди в терміналі:

npm view <package_name>

Для ініціалізації проєкту введіть npm init

Ця команда запитує розробника основну інформацію про проєкт і генерує package.json на основі відповідей. У цьому файлі зберігається інформація про проєкт та його залежності.

Етап із питаннями можна пропустити за допомогою npm init-y. Пакети завантажуються командою npm install або, скорочено, npm i. Якщо у вашому проєкті вже є package.json, то підтягнуться модулі, вказані в ньому. Якщо пакет не був прописаний у package.json, потрібно написати його назву після команди:

npm install <package_name>

Пакети можна підтягувати не тільки за ім’ям, а й за посиланням:

npm install <git:// url>

Наприкінці команд можна додавати прапорці, які модифікують їхнє виконання. Наприклад, додати залежність до package.json:

npm install <package_name>-s

За замовчуванням пакети встановлюються в директорію node_modules у папці проеєту. Також доступна установка в глобальне сховище на ПК. Наприклад, на Windows — у папку AppData на диску з операційною системою. Для цього потрібно додати прапор:

npm install <package_name>-g

Пакети можна оновити до останньої версії за допомогою команди npm update

Версійність npm

Іноді новий пакет некоректно працює з іншими залежностями або може містити помилки. Щоби виправити це, можна встановити більш ранню версію. Виділяють три групи версій:

  • MAJOR — ппакет, у якому код і логіка істотно відрізняється від попередніх, наприклад, замінено ключовий клас. Версія 3.0.0 істотно відрізнятиметься від 2.0.0.
  • MINOR — пакет, до якого просто додали новий функціонал. Наприклад, 3.1.0 розширює 3.0.0.
  • PATCH — тут тільки вносилися патчі та фікси. Якщо нам потрібно буде внести фікс у 3.1.0, ми назвемо версію 3.1.1.

Щоби переглянути всі версії пакета, потрібно ввести команду:

npm view <package_name> versions

Для встановлення конкретної версії використовується команда із зазначенням версії після @:

npm install <package_name>@1.0.0

Додавання прапора --save-exact встановить і додасть останню версію в package.json. У такий же спосіб можна відкотитися до необхідної.

Скрипти та тести

package.json містить не тільки загальну інформацію про проєкт та залежність, а і скрипти, які розробники використовують для збирання додатків, запуску лінтерів, тестів. Користь скриптів у тому, що вони дозволяють не запам’ятовувати довгі послідовності команд. Скрипти знаходяться в розділі scripts і містять назву та самі команди:

"scripts": {
    "build": "npm run build:node && npm run build:browser",
    "build:browser": "rollup -c config/rollup.browser-config.js",
    "build:node": "rollup -c config/rollup.node-config.js",
    "clean": "git clean -fdxe node_modules",
    "lint": "eslint src/",
    "start": "node -i -e 'YAML=require(\"./dist/index.js\")'",
}

Наприклад, скрипт lint запускає лінтер для директорії src. Для запуску скриптів використовується команда:

npm run <script_name>

Якщо ваш проєкт містить тести, їх можна запустити за допомогою:

npm test

Якщо ви забули потрібну команду або доступні для неї прапори, ви можете ввести:

npm help

Також доступна документація з описом усіх команд і прапорів для різних версій npm.

Ще статті
Як працювати з даними: фахівці діляться досвідом.
Розробники радять Telegram- та YouTube-канали, книги та блоги.