Що таке 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.