Установка и первый проект
Что понадобится
- Node.js LTS (22 или 20).
- npm — идёт с Node.js.
- Редактор — VS Code.
- Терминал — bash, zsh, PowerShell.
Установка через nvm
nvm — Node Version Manager. Позволяет держать несколько версий.
Linux / macOS:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Или через brew (macOS):
brew install nvm
Перезапустить терминал, проверить:
nvm --version
Установить Node.js:
nvm install 22
nvm use 22
nvm alias default 22
Проверка:
node -v
# v22.10.0
npm -v
# 10.9.0
Установка на Windows
Вариант 1: nvm-windows
- Скачать с github.com/coreybutler/nvm-windows
- Установить.
nvm install 22,nvm use 22.
Вариант 2: официальный установщик
- nodejs.org → LTS → установить.
Вариант 3: WSL2 + Ubuntu
- Как на сервере. Лучший вариант для разработки.
Установка на macOS
brew install nvm
nvm install 22
nvm use 22
Или через fnm — более быстрый:
brew install fnm
fnm install 22
Первый проект
Создать папку:
mkdir my-app
cd my-app
Инициализировать npm:
npm init -y
Появится package.json:
{
"name": "my-app",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
Первый скрипт
Создай index.js:
console.log('Привет, Node.js!');
console.log('Версия:', process.version);
console.log('Платформа:', process.platform);
Запусти:
node index.js
Вывод:
Привет, Node.js!
Версия: v22.10.0
Платформа: linux
Скрипты в package.json
Добавь в package.json:
{
"scripts": {
"start": "node index.js",
"dev": "node --watch index.js"
}
}
Запуск:
npm start
npm run dev
--watch — автоматический перезапуск при изменении файла.
Структура проекта
my-app/
├── src/
│ └── index.js
├── .gitignore
├── package.json
└── README.md
.gitignore:
node_modules/
.env
*.log
node_modules — никогда не коммитить.
Установка пакетов
npm:
npm install express
npm install --save-dev nodemon
Появится node_modules/ — здесь живут все зависимости.
package.json:
{
"dependencies": {
"express": "^5.0.0"
},
"devDependencies": {
"nodemon": "^3.1.0"
}
}
package-lock.json — фиксирует точные версии. Коммитить.
Типы зависимостей
dependencies— для прода.devDependencies— для разработки (линтеры, тесты, сборщики).peerDependencies— для плагинов и библиотек.optionalDependencies— не критичные.
npm vs yarn vs pnpm
| npm | yarn | pnpm | |
|---|---|---|---|
| Скорость | Средне | Быстро | Очень быстро |
| Диск | Много | Много | Экономия |
| Совместимость | Полная | Полная | Полная |
| По умолчанию | Да | Нет | Нет |
Начинающим — npm. В командах — pnpm.
Node.js vs npx
npx — запуск пакетов без установки:
npx create-vite@latest my-app
npx prettier --write .
Полезно для одноразовых команд.
Переменные окружения
.env:
NODE_ENV=development
PORT=3000
API_KEY=secret
Чтение:
console.log(process.env.NODE_ENV);
console.log(process.env.PORT || 3000);
До Node.js 20.6 — только через dotenv. Сейчас — встроенный --env-file:
node --env-file=.env index.js
Полезные команды
node index.js # запуск файла
node --watch index.js # автоперезапуск
node -e "console.log('hi')" # выполнить строку
node --version # версия
node --help # помощь
npm install # установить зависимости
npm install <pkg> # добавить пакет
npm install -D <pkg> # dev-зависимость
npm uninstall <pkg> # удалить
npm update # обновить
npm run <script> # запустить скрипт
npm ls # дерево зависимостей
npm audit # проверка уязвимостей
Первый HTTP-сервер
index.js:
import http from 'node:http';
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.end('Привет из Node.js!');
});
server.listen(3000, () => {
console.log('Сервер: http://localhost:3000');
});
Запуск:
node index.js
Открой http://localhost:3000.
Практика
// index.js
const name = process.argv[2] || 'гость';
const time = new Date().toLocaleString('ru');
console.log(`Привет, ${name}!`);
console.log(`Сейчас: ${time}`);
console.log(`Node.js: ${process.version}`);
console.log(`Платформа: ${process.platform}`);
Запуск:
node index.js Иван
Вывод:
Привет, Иван!
Сейчас: 15.10.2026, 14:30:00
Node.js: v22.10.0
Платформа: linux
Итог
- nvm — управление версиями.
npm init -y— создать проект.package.json— манифест.node_modules/— зависимости, не в git.npm install— установка.- Скрипты — в
package.json. --watch— автоперезапуск..env— переменные окружения.
Дальше — модули: CommonJS и ESM.