Node.js и npm/pnpm
Node.js и npm/pnpm
Node.js — среда выполнения JavaScript на сервере (и в командной строке). Без него невозможна современная JavaScript-разработка: он нужен для запуска инструментов сборки, линтеров, тестов и серверного кода.
Установка Node.js
Рекомендуемый способ — через nvm (Node Version Manager), который позволяет переключаться между версиями.
macOS / Linux
# Установка nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Установка последней LTS версии Node.js
nvm install --lts
nvm use --lts
Windows
Используйте nvm-windows или скачайте установщик с nodejs.org (версия LTS).
Проверка установки
node --version # v20.x.x
npm --version # 10.x.x
REPL — интерактивная консоль
Node.js REPL (Read-Eval-Print Loop) — интерактивная консоль для быстрого тестирования кода:
node # Запустить REPL
> 2 + 2
4
> const arr = [1, 2, 3]
undefined
> arr.map(x => x * 2)
[ 2, 4, 6 ]
> .exit // Выход из REPL
Запуск JavaScript файлов
# Создайте файл hello.js
# console.log('Привет, Node.js!');
node hello.js # Привет, Node.js!
Аргументы командной строки
// args.js
// process.argv[0] — путь к node
// process.argv[1] — путь к файлу
// process.argv[2+] — ваши аргументы
const args = process.argv.slice(2);
console.log('Аргументы:', args);
node args.js hello world
# Аргументы: [ 'hello', 'world' ]
npm — управление пакетами
npm (Node Package Manager) — стандартный менеджер пакетов Node.js.
package.json
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"start": "node index.js",
"dev": "node --watch index.js",
"test": "vitest"
},
"dependencies": {
"express": "^4.18.0"
},
"devDependencies": {
"vitest": "^1.0.0"
}
}
Основные команды npm
npm init -y # Создать package.json
npm install express # Установить пакет
npm install -D vitest # Установить dev-зависимость
npm uninstall express # Удалить пакет
npm run start # Запустить скрипт
npm list # Список установленных пакетов
pnpm — быстрая альтернатива npm
pnpm экономит место на диске, используя жёсткие ссылки вместо копирования пакетов. В монорепозиториях это критически важно.
# Установка pnpm
npm install -g pnpm
# Команды аналогичны npm
pnpm install
pnpm add express
pnpm add -D vitest
pnpm run dev
- dependencies — пакеты, нужные в продакшне (например,
express,react) - devDependencies — пакеты только для разработки (тесты, линтеры, сборщики)
При npm install --production devDependencies не устанавливаются. Это важно для размера образов Docker и скорости деплоя.
Версионирование (^1.2.3):
^— обновляет минорные и патч-версии (1.x.x)~— обновляет только патч-версии (1.2.x)- без префикса — точная версия