Пошук уроків, статей та іншого контенту
Створимо package.json і навчимося встановлювати, оновлювати та видаляти пакети через npm.
npm — менеджер пакетів для Node.js. Він допомагає:
встановлювати готові пакети;
зберігати список залежностей проєкту;
оновлювати та видаляти пакети;
відновлювати всі залежності після клонування проєкту.
Пакет — це код, який можна додати до власного проєкту. Наприклад, пакет lodash містить корисні функції для роботи з масивами та об’єктами.
Разом із Node.js зазвичай встановлюється і команда npm.
Перевірити встановлення можна командами:
node --version
npm --versionКоманда node --version показує версію Node.js, а npm --version — версію npm.
Створимо нову папку та перейдемо до неї:
mkdir npm-example
cd npm-exampleТепер створимо файл package.json:
npm initnpm поставить кілька запитань: назву проєкту, версію, опис, точку входу та інші параметри. Значення за замовчуванням можна приймати клавішею Enter.
Для автоматичного створення файлу зі стандартними значеннями використовуйте:
npm init -yУ результаті з’явиться файл package.json приблизно такого вигляду:
{
"name": "npm-example",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}package.json описує Node.js-проєкт. У ньому можуть зберігатися:
назва та версія проєкту;
головний файл;
команди для запуску;
залежності проєкту;
залежності, потрібні лише для розробки.
Найважливішими для цієї теми є поля dependencies і devDependencies.
Встановимо пакет lodash:
npm install lodashСкорочений варіант цієї команди:
npm i lodashПісля виконання команди npm:
завантажить пакет;
створить папку node_modules;
додасть пакет до dependencies у package.json;
створить або оновить файл package-lock.json.
У package.json з’явиться залежність:
{
"dependencies": {
"lodash": "^4.17.21"
}
}Точна версія може відрізнятися, оскільки npm встановлює актуальну сумісну версію.
Створимо файл index.js:
const _ = require('lodash');
const numbers = [1, 2, 3, 4, 5, 6];
const groups = _.chunk(numbers, 2);
console.log(groups);Запустимо програму:
node index.jsРезультат:
[ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]Node.js знайшов пакет lodash у папці node_modules, тому його можна підключити через require.
Іноді проєкту потрібна певна версія пакета. Її можна вказати після символу @:
npm install lodash@4.17.21Також можна встановити найновішу версію пакета:
npm install lodash@latestПісля встановлення версія буде записана до package.json і package-lock.json.
Деякі пакети потрібні лише під час розробки. Наприклад, інструменти перевірки коду або тестування не обов’язково потрібні для роботи готового застосунку.
Такі пакети встановлюють із прапорцем --save-dev:
npm install --save-dev eslintСкорочений варіант:
npm install -D eslintПісля цього пакет потрапить до поля devDependencies:
{
"devDependencies": {
"eslint": "^9.0.0"
}
}Різниця така:
dependencies — пакети, потрібні застосунку під час роботи;
devDependencies — пакети, потрібні лише під час розробки.
Якщо в проєкті вже є package.json, усі залежності можна встановити однією командою:
npm installnpm прочитає package.json і завантажить потрібні пакети до node_modules.
Це особливо корисно після клонування готового проєкту. Папку node_modules зазвичай не зберігають у системі контролю версій, тому кожен розробник встановлює її локально командою npm install.
Файл package-lock.json фіксує точні версії встановлених пакетів і їхніх залежностей. Його зазвичай потрібно зберігати в репозиторії.
Щоб оновити один пакет до сумісної версії, використовуйте:
npm update lodashКоманда враховує діапазон версій, записаний у package.json. Наприклад, запис:
"lodash": "^4.17.21"означає, що npm може встановлювати сумісні оновлення в межах версії 4.
Щоб оновити всі залежності в межах указаних діапазонів:
npm updateПеревірити, які пакети застаріли, можна командою:
npm outdatedВона покаже поточну, рекомендовану та найновішу доступну версію пакетів.
Якщо потрібно встановити конкретну новішу версію, вкажіть її явно:
npm install lodash@4.17.21Щоб видалити пакет із проєкту, використовуйте:
npm uninstall lodashСкорочений варіант:
npm remove lodashnpm:
видалить пакет із node_modules;
видалить його з package.json;
оновить package-lock.json.
Після видалення пакет більше не можна використовувати в коді, доки його не встановлять знову.
У package.json можна створювати команди для часто використовуваних дій.
Змінимо поле scripts:
{
"scripts": {
"start": "node index.js"
}
}Тепер програму можна запускати командою:
npm run startДля скрипта start npm має скорочену форму:
npm startПовний приклад package.json:
{
"name": "npm-example",
"version": "1.0.0",
"description": "Приклад використання npm",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"lodash": "^4.17.21"
}
}Для нового проєкту послідовність може бути такою:
mkdir my-project
cd my-project
npm init -y
npm install lodashПісля цього створіть index.js:
const _ = require('lodash');
const names = ['Anna', 'Bohdan', 'Olena'];
const sortedNames = _.sortBy(names);
console.log(sortedNames);Запустіть програму:
node index.jsАбо додайте скрипт "start": "node index.js" до package.json і використовуйте:
npm startЯкщо виконати npm install не в тій папці, npm створить або змінить package.json у поточній директорії.
Перед командами перевірте, що ви перебуваєте в папці проєкту:
pwdУ Windows можна використати:
cdПісля клонування проєкту папки node_modules може не бути. Це нормально. Виконайте:
npm installЯкщо прибрати пакет тільки з package.json, він може залишитися в node_modules. Використовуйте:
npm uninstall package-nameНаприклад:
npm uninstall lodashНе змінюйте код усередині node_modules. Під час наступного встановлення npm може видалити ці зміни. Налаштування та код потрібно зберігати у власних файлах проєкту.
Назва пакета в команді та назва під час підключення мають відповідати документації пакета. Якщо npm не може знайти пакет або програма не запускається, перевірте написання його назви.
npm init -y створює package.json зі стандартними значеннями.
npm install package-name встановлює пакет і додає його до dependencies.
npm install -D package-name додає пакет до devDependencies.
npm install встановлює всі залежності з package.json.
npm update оновлює залежності в межах дозволених версій.
npm uninstall package-name видаляє пакет із проєкту.
package.json описує залежності та команди проєкту.
package-lock.json зберігає точні версії встановлених пакетів.
node_modules містить встановлений код залежностей.