Перейти до основного вмісту

Інструменти для роботи з Node.js

Що таке npm?

npm (Node Package Manager) — це офіційний пакетний менеджер для Node.js. Він дозволяє:

  • Встановлювати сторонні бібліотеки та фреймворки
  • Керувати залежностями проєкту
  • Запускати скрипти (команди) через package.json

Приклад ініціалізації проєкту з npm

npm init -y

Файл package.json (скорочений приклад)

{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "start": "ts-node src/index.ts",
    "build": "tsc"
  },
  "dependencies": {
    "express": "^4.18.0"
  },
  "devDependencies": {
    "typescript": "^5.0.0",
    "ts-node": "^10.0.0"
  }
}

Що таке tsconfig.json?

tsconfig.json — це файл конфігурації для компілятора TypeScript, який визначає, як слід компілювати код.

Приклад файлу tsconfig.json

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "CommonJS",
    "rootDir": "src",
    "outDir": "dist",
    "strict": true,
    "esModuleInterop": true
  }
}

Основні опції:

  • target — яку версію JS згенерувати (наприклад, ES2020)
  • module — тип модулів (CommonJS для Node.js)
  • strict — вмикає жорстку типізацію
  • esModuleInterop — дозволяє імпортувати CommonJS-модулі як ES-модулі
  • rootDir / outDir — папки для вхідного та вихідного коду

Інші пакетні менеджери

Окрім npm, існують альтернативи:

  • yarn — швидший, має функцію workspaces
  • pnpm — ефективний за використанням диску, підтримує монорепозиторії

Приклад встановлення бібліотеки з типами

npm install express
npm install -D @types/express

У TypeScript проєктах потрібно встановлювати типи для бібліотек через пакет @types/<назва>, якщо сама бібліотека їх не надає.

npm та tsconfig.json — це ключові інструменти для роботи з Node.js і TypeScript. Вони дозволяють структурувати, автоматизувати та масштабувати серверні застосунки з точністю, аналогічною до того, як pom.xml або build.gradle працює в Java-середовищі.

Visual Studio Code (VS Code)

VS Code — це легка, але потужна IDE для розробки на JavaScript/TypeScript. Вона має вбудовану підтримку IntelliSense, інтеграцію з Git, налагодження, а також величезну кількість плагінів.

Рекомендовані розширення для Node.js + TypeScript

  • ESLint — перевірка стилю коду
  • Prettier — автоформатування
  • TypeScript — підтримка мови
  • npm Intellisense — автозаповнення для імпортів
  • Path Intellisense — підказки для шляхів до файлів
  • Debugger for Chrome — налагодження у браузері (для full-stack)

Переваги VS Code

  • Швидкий старт (на відміну від важких IDE, як IntelliJ IDEA)
  • Вбудований термінал для роботи з npm, tsc, npx
  • Гнучка конфігурація: settings.json, launch.json
  • Можливість працювати з Docker, Git, базами даних, REST API прямо в IDE

Node Version Manager (nvm)

nvm — це утиліта для керування версіями Node.js. Дозволяє легко встановлювати, перемикати, оновлювати Node.js без глобальних конфліктів.

Переваги nvm

  • Можливість використовувати різні версії Node.js для різних проєктів
  • Не потребує прав адміністратора
  • Зручний для CI/CD, розробки, тестування старих проєктів

Установка nvm (Linux/macOS)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# або
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Після установки перезапустіть термінал і перевірте:

nvm --version

Команди nvm

# Встановити останню LTS версію
nvm install --lts

# Встановити конкретну версію
nvm install 20.10.0

# Перемкнути версію
nvm use 20.10.0

# Переглянути список встановлених версій
nvm ls

# Встановити цю версію як дефолтну
nvm alias default 20.10.0

Інструменти VS Code та nvm значно спрощують розробку на Node.js + TypeScript. Java-розробники, які звикли до складної екосистеми з Maven/Gradle, можуть оцінити гнучкість і легкість запуску проектів з мінімумом конфігурації.

Коментарі

Популярні публікації

Шпаргалка по базових командах PostgreSQL

1. Підключення до PostgreSQL через командний рядок: psql -h <host> -p <port> -U <username> -d <database> 2. Підключення до бази без параметрів (якщо користувач і база мають однакове ім’я): psql 3. Показати список усіх баз даних: \l 4. Підключитися до іншої бази даних: \c <database_name> 5. Показати список таблиць у поточній базі: \dt 6. Показати всі об'єкти (таблиці, індекси, секвенції): \d 7. Показати таблиці з усіх схем: \dt *.* 8. Переглянути структуру конкретної таблиці: \d <table_name> 9. Виконати SQL-запит (приклад): SELECT * FROM users; 10. Вийти з psql: \q 11. Створити нову базу даних: CREATE DATABASE mydb; 12. Створити нову таблицю: CREATE TABLE users ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE ); 13. Додати новий запис: INSERT INTO users (name, email) VALUES ('Іван', 'ivan@example.com'); 14. Оновити дані в таблиці: UPDATE users SET name = 'Петро' WH...

Основи GLSL

Що таке GLSL? GLSL (OpenGL Shading Language) – мова програмування шейдерів для OpenGL. Використовується для написання vertex, fragment, geometry та інших шейдерів, що працюють на GPU. Оголошення версії #version 330 core Вказує версію GLSL. Наприклад, 330 core відповідає OpenGL 3.3. Вхідні та вихідні змінні layout(location=0) in vec3 aPos; layout(location=1) in vec3 aNormal; out vec3 FragPos; in – вхідні атрибути (vertex shader). out – вихідні змінні (vertex shader) або фінальний колір (fragment shader). Основні типи даних float, int, bool vec2, vec3, vec4 mat2, mat3, mat4 sampler2D (текстури) Тип Опис Приклади використання vec2 Двокомпонентний вектор з типом float. - Текстурні координати (UV) - 2D позиції - Швидкість у 2D vec3 Трикомпонентний вектор з типом float. - Координати позицій у 3D - Нормалі - Колір у форматі RGB vec4 Чотирикомпо...

Атоми в мові програмування Elixir

Атоми в Elixir Атоми є фундаментальною концепцією в Elixir , що відіграє ключову роль у створенні надійних та масштабованих систем. В Elixir це специфічний тип даних, який є константою , незмінною , ідентифікованою за своїм ім'ям . Отже, атом в Elixir — це іменована константа, що представляє себе. Уявіть, що ви даєте унікальне ім'я певній речі, і це ім'я завжди посилається саме на цю річ, і ніколи на щось інше. Наприклад, атом :ok завжди буде означати саме успішне завершення операції, а не якесь інше значення. Технічно, атоми є похідними від чисел . Кожен унікальний атом зберігається у таблиці атомів, і йому присвоюється унікальний цілочисельний ідентифікатор. Це робить їх надзвичайно ефективними для порівняння: замість порівняння рядків (що є повільною операцією), Elixir порівнює цілочисельні ідентифікатори. Переваги та особливості використання атомів Переваги атомів: Ефективність. Завдяки своєму числовому представленню, порівняння атомів є дуже швидким. Це осо...

Встановлення PostgreSQL на Ubuntu-сервер

Встановлення Оновлюємо пакети та встановлюємо PostgreSQL: sudo apt update sudo apt install -y postgresql postgresql-contrib Перевіряємо статус сервісу: sudo systemctl status postgresql Якщо PostgreSQL не запущений, запустимо його: sudo systemctl start postgresql sudo systemctl enable postgresql Налаштування безпеки Зміна пароля: sudo -u postgres psql У консолі PostgreSQL: ALTER USER postgres PASSWORD 'міцний_пароль'; \q \q - вихід з консолі. Список основних команд для роботи з PostgreSQL можна переглянути за посиланням. За замовчуванням PostgreSQL слухає localhost (127.0.0.1). Щоб дозволити доступ із зовнішніх машин, редагуємо конфігурацію: sudo nano /etc/postgresql/17/main/postgresql.conf (замість 17 вкажи версію PostgreSQL, яку встановлено) Шукаємо рядок: #listen_addresses = 'localhost' та замінюємо на listen_addresses = '*' Зберігаємо (Ctrl + X, Y, Enter). Тепер редагуємо pg_hba.conf: sudo nano /etc/postgresql/17/main/pg_hba.conf...

Прості типи даних в Elixir

Мова Elixir має низку простих (примітивних) типів даних, які часто використовуються в повсякденному програмуванні. Числа Elixir підтримує цілі (integer) та дійсні числа (float). # Цілі числа a = 42 b = -7 # Дійсні числа c = 3.14 d = -0.001 Булеві значення Elixir має два булевих значення: true та false . x = true y = false z = x and y # false Атоми Атоми — це константи з іменем, що починається з двокрапки. Вони широко використовуються, наприклад, для імен параметрів або станів. :ok :error :running :elixir_is_fun Рядки Рядки в Elixir — це двійкові дані з кодуванням UTF-8, оголошуються в подвійних лапках. name = "Pavlo" greeting = "Привіт, #{name}!" Nil Nil — це спеціальне значення, що позначає "відсутність значення". value = nil is_nil(value) # true Бінарні дані та байти Бінарні дані оголошуються в подвійних лапках або як бінарні літерали. string = "Привіт" # це рядок, але також бінарні дані binary = ...