Вивчай

Node.js, npm та VS Code

Node.js npm та VS Code — організоване робоче місце розробника з монітором та клавіатуроюNode.js npm та VS Code — організоване робоче місце розробника з монітором та клавіатурою

У попередніх уроках ми опанували термінал, Git та GitHub. Тепер час налаштувати останні інструменти — Node.js, npm та VS Code. Після цього уроку у тебе буде повний набір інструментів, як у професійного розробника.


Що таке Node.js?

До 2009 року JavaScript працював тільки в браузері. Хочеш запустити JS-код — відкривай Chrome. А потім Раян Дал (Ryan Dahl) створив Node.js — середовище, яке дозволяє запускати JavaScript на комп'ютері, без браузера.

Це змінило все: одна мова — і для сайтів, і для серверів, і для інструментів розробки.

Інфо

Node.js використовують Netflix, PayPal, LinkedIn та Uber. Netflix перейшов з Java на Node.js і скоротив час запуску застосунку з 40 хвилин до менше ніж 1 хвилини. А PayPal зміг писати один код і для браузера, і для сервера — що вдвічі зменшило команду розробників.

Встановлення Node.js

  1. Перейди на nodejs.org
  2. Завантаж версію LTS (Long Term Support) — це стабільна версія, яку рекомендують для роботи
  3. Встанови з налаштуваннями за замовчуванням

Перевір у терміналі:

node --version
# v22.x.x

npm --version
# 10.x.x

Бачиш версії? Чудово, Node.js встановлено. Зверни увагу — npm встановився автоматично разом з Node.js.

Запускаємо JavaScript без браузера

Давай спробуємо прямо зараз. Створи файл hello.js:

const name = "Світ";
console.log(`Привіт, ${name}!`);

// Трохи математики
const a = 10;
const b = 3;
console.log(`${a} + ${b} = ${a + b}`);
console.log(`${a} * ${b} = ${a * b}`);

Запусти:

Запуск JavaScript через Node.js — node hello.jsЗапуск JavaScript через Node.js — node hello.js

node hello.js
# Привіт, Світ!
# 10 + 3 = 13
# 10 * 3 = 30

Ти щойно запустив JavaScript на своєму комп'ютері, без жодного браузера. Поки що ми не будемо глибоко вивчати JS — це буде в Block 4. Але тепер ти знаєш, що Node.js дозволяє запускати JS-файли командою node файл.js.


npm — менеджер пакетів

npm (Node Package Manager) — це як App Store, але для коду. Замість того щоб писати все з нуля, ти завантажуєш готові бібліотеки (пакети), які створили інші розробники.

Хочеш працювати з датами? Є пакет dayjs. Валідувати email? Є validator. Створити веб-сервер? express. Для будь-якої задачі, швидше за все, вже є готовий пакет.

Інфо

В реєстрі npm понад 3 мільйони пакетів. Щотижня їх завантажують понад 30 мільярдів разів. Це найбільший реєстр програмного забезпечення у світі.


package.json — паспорт проєкту

Кожен проєкт на Node.js починається з файлу package.json. Це як паспорт: в ньому записано як називається проєкт, які пакети він використовує і які команди можна запустити.

Створюємо package.json

npm init та npm install — створення проєкту і встановлення пакетівnpm init та npm install — створення проєкту і встановлення пакетів

mkdir my-app
cd my-app

# Створюємо package.json з дефолтними значеннями
npm init -y

Відкрий створений файл — побачиш:

{
  "name": "my-app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  }
}
ПолеЩо означає
nameНазва проєкту
versionВерсія проєкту
scriptsКоманди, які можна запускати через npm run
dependenciesПакети, потрібні користувачам сайту
devDependenciesПакети, потрібні тільки тобі як розробнику
Порада

У чому різниця між dependencies та devDependencies? Уяви ресторан. dependencies — це інгредієнти для страв (без них ресторан не працює). devDependencies — це інструменти кухаря: ножі, дошки, форми (потрібні для готування, але гості їх не бачать). Наприклад, бібліотека dayjs для роботи з датами — це dependency (потрібна в готовому сайті). А prettier для форматування коду — devDependency (потрібна тільки тобі під час розробки).


Встановлення пакетів

# Встановити пакет (додається в dependencies)
npm install dayjs

# Встановити пакет тільки для розробки (devDependencies)
npm install --save-dev prettier

# Видалити пакет
npm uninstall dayjs

Після npm install dayjs стались три речі:

  1. З'явилася папка node_modules/ — тут живе код пакету
  2. В package.json додався запис в dependencies
  3. З'явився файл package-lock.json — він фіксує точні версії всіх пакетів
{
  "dependencies": {
    "dayjs": "^1.11.10"
  }
}

Чому node_modules НЕ комітять в Git?

Папка node_modules може містити тисячі файлів і важити сотні мегабайт. Але це не проблема — достатньо мати package.json. Будь-хто може виконати одну команду:

npm install

І npm завантажить все необхідне. Тому в .gitignore завжди є:

node_modules/
Увага

А от package-lock.json потрібно комітити! Він гарантує, що у всіх розробників будуть ідентичні версії пакетів. Без нього у когось може встановитися новіша версія з несумісними змінами.


npm scripts — власні команди

Найкорисніша частина package.json — це scripts. Ти можеш створити свої команди-шорткати:

{
  "scripts": {
    "start": "node server.js",
    "hello": "echo Привіт від npm!",
    "format": "prettier --write ."
  }
}

Запуск:

# start та test — особливі, можна без "run"
npm start

# Всі інші — через "run"
npm run hello
npm run format
Порада

Тримай всі команди проєкту в scripts. Замість того щоб запам'ятовувати довгі команди типу prettier --write --single-quote ., пишеш npm run format — і все. Новий розробник теж одразу знає як працювати з проєктом — достатньо подивитися scripts у package.json.

npx — запустити без встановлення

Іноді хочеш спробувати пакет, не встановлюючи його. Для цього є npx:

# Запускає пакет одноразово, без npm install
npx cowsay "Привіт!"

Побачиш корівку, яка "говорить" у терміналі. npx завантажить пакет тимчасово, запустить — і видалить. Корисно для одноразових інструментів.


VS Code — редактор коду

Visual Studio Code — найпопулярніший редактор коду у світі. Безкоштовний, швидкий, з тисячами розширень. Його використовують і студенти, і розробники в Google.

Встановлення

Завантаж з code.visualstudio.com та встанови.

Відкриваємо проєкт

Найзручніший спосіб — з терміналу:

# Відкрити поточну папку в VS Code
code .
Порада

Якщо команда code не працює: відкрий VS Code → натисни Cmd+Shift+P (або Ctrl+Shift+P) → набери "shell command" → обери "Install 'code' command in PATH".

Інтерфейс

┌──────────────────────────────────────────┐
│  Menu Bar                                │
├──────┬───────────────────────────────────┤
│      │                                   │
│ Side │         Editor                    │
│ Bar  │         (тут пишеш код)           │
│      │                                   │
│      ├───────────────────────────────────┤
│      │  Terminal (вбудований термінал)    │
└──────┴───────────────────────────────────┘

Вбудований термінал відкривається через Ctrl+** (або **Cmd+ на Mac). Тепер можеш писати код і запускати команди в одному вікні!

Обов'язкові розширення

Натисни іконку Extensions у Side Bar (або Ctrl+Shift+X) та встанови:

РозширенняНавіщо
Live ServerЗапускає локальний сервер — зберігаєш файл, і зміни видно в браузері миттєво, без ручного оновлення сторінки
PrettierАвтоматично форматує код при збереженні — відступи, лапки, крапки з комою стають ідеальними
Auto Rename TagПерейменовуєш <div> — і </div> оновлюється автоматично
ESLintПоказує помилки в JavaScript ще до запуску коду — підкреслює проблемні місця

Налаштування Prettier

Після встановлення Prettier увімкни автоформатування:

  1. Відкрий налаштування: Ctrl+, (або Cmd+,)
  2. Знайди "Format On Save" → постав галочку
  3. Знайди "Default Formatter" → обери "Prettier"

Тепер при кожному збереженні (Ctrl+S) код автоматично стає красивим і акуратним.


Гарячі клавіші VS Code

Ці шорткати зекономлять тобі багато часу:

ДіяWindows/LinuxMac
Командна палітраCtrl+Shift+PCmd+Shift+P
Швидко відкрити файлCtrl+PCmd+P
Перемістити рядок вгору/внизAlt+↑/↓Option+↑/↓
Коментувати рядокCtrl+/Cmd+/
Виділити наступне входженняCtrl+DCmd+D
Вбудований терміналCtrl+`Cmd+`

Emmet — швидке написання HTML

Emmet вже вбудований у VS Code. Набери скорочення і натисни Tab:

НабериОтримаєш
!Повний HTML-шаблон (DOCTYPE, html, head, body)
div.container<div class="container"></div>
ul>li*3<ul> зі списком із 3 елементів <li>
a[href="#"]<a href="#">
loremАбзац тексту-заглушки

Emmet економить дуже багато часу при написанні HTML — ти будеш активно використовувати його в наступних блоках.


Практика: зібрати все разом

Давай створимо повноцінний проєкт з усіма інструментами, які ми вивчили:

# 1. Створюємо проєкт
mkdir my-website && cd my-website

# 2. Ініціалізуємо Git та npm
git init
npm init -y

# 3. Створюємо файли
touch index.html style.css script.js

# 4. Створюємо .gitignore
echo "node_modules/" > .gitignore

# 5. Встановлюємо Prettier
npm install --save-dev prettier

# 6. Перший коміт
git add .
git commit -m "Ініціалізація проєкту: HTML/CSS/JS + npm + Git"

# 7. Відкриваємо в VS Code
code .

Тепер у VS Code:

  • Відкрий index.html, набери ! і натисни Tab — отримаєш шаблон HTML
  • Натисни Go Live внизу (від Live Server) — відкриється браузер з твоєю сторінкою
  • Зміни щось у файлі, збережи — побачиш результат миттєво

Вітаю — ти маєш повний набір інструментів професійного розробника!


Шпаргалка

КомандаЩо робить
node файл.jsЗапустити JS-файл
npm init -yСтворити package.json
npm install пакетВстановити пакет
npm install --save-dev пакетВстановити пакет для розробки
npm installВстановити всі пакети з package.json
npm run назваЗапустити script
npx пакетЗапустити пакет без встановлення
code .Відкрити папку в VS Code

Підсумок

  • Node.js — запускає JavaScript поза браузером
  • npm — менеджер пакетів (App Store для коду)
  • package.json — паспорт проєкту з описом залежностей та команд
  • package-lock.json — фіксує точні версії пакетів (комітити!)
  • node_modules — папка з пакетами (не комітити!)
  • npx — запустити пакет одноразово, без встановлення
  • VS Code — редактор коду з розширеннями, терміналом та Emmet

Що далі?

У наступному уроці дізнаємося про формати даних — JSON, Markdown, CSV та інші. Ти вже зустрічав package.json та README.md — час розібратися, що це за формати і навіщо вони потрібні.

Інфо

Цікаві пакети npm, які варто спробувати:

  • npx cowsay "Муу!" — корівка, яка "говорить" у терміналі
  • npx figlet "Hello" — перетворює текст у великі ASCII-букви
  • npx create-react-app my-app — створює React-проєкт однією командою (дійдемо до цього в Block 8!)

Чому JS, а не Python / Java / C++? JavaScript — єдина мова, яка працює і в браузері, і на сервері. Вивчивши одну мову, ти зможеш робити все: сайти, мобільні додатки (React Native), десктопні програми (Electron — VS Code сам написаний на JS!), сервери і навіть роботів.

Корисні посилання: