Node.js — бесплатная среда, которая умеет выполнять программы на языке JavaScript прямо в системе, без браузера. До её появления JavaScript жил только на страницах сайтов; с Node.js на том же языке пишут веб-серверы, утилиты командной строки, скрипты для обработки файлов и инструменты, которые собирают сайты из исходников.
Для обычного пользователя Node.js — не самостоятельная программа с окном и кнопками, а фундамент: его ставят, потому что он нужен чему-то другому. Почти любой современный инструмент веб-разработки, от сборщиков и линтеров до генераторов статических сайтов, запускается именно на Node.js. Вместе с ним в системе появляется npm — менеджер пакетов, через который одной командой скачиваются готовые библиотеки из общего хранилища.
Что умеет Node.js
- Запускает файлы с кодом — команда с именем файла выполняет программу на JavaScript так же, как интерпретатор выполняет скрипт на другом языке.
- Поднимает веб-серверы — обработка запросов устроена без ожидания: пока один запрос ждёт ответа от базы, Node.js занимается другими. Поэтому он хорошо держит много одновременных подключений при скромных ресурсах.
- Работает с файлами, сетью и процессами — встроенные модули читают и пишут файлы, запускают другие программы, обращаются к сети. Разовую задачу вроде переименования тысячи файлов удобно решить коротким скриптом.
- Ставит пакеты через npm — библиотеки и инструменты скачиваются одной командой вместе со всем, от чего они зависят, а список нужного хранится в файле проекта, чтобы на другом компьютере всё поставилось так же.
- Запускает инструменты сборки — упаковщики кода, препроцессоры стилей, проверку синтаксиса, автоматические тесты. Для многих сайтов это единственная причина, по которой Node.js стоит на компьютере.
- Поддерживает современный JavaScript и TypeScript — свежие возможности языка доступны сразу, а в последних версиях Node.js умеет запускать файлы с типами без отдельного сборщика.
- Умеет работать в фоне как служба — серверные программы запускают через системный менеджер служб или через специальные управляющие утилиты.
Версии Node.js выходят двумя линиями. LTS — линия с долгой поддержкой, её и стоит ставить для работы: обновления с исправлениями выходят годами. Текущая линия получает новые возможности раньше, но её поддерживают недолго, поэтому она нужна тем, кто проверяет что-то новое.
Кому подходит
- Веб-разработчикам: без Node.js не заработают привычные инструменты сборки интерфейса.
- Тем, кто делает сайт на готовом движке или шаблоне и видит в инструкции команды, начинающиеся на npm.
- Тем, кто хочет автоматизировать мелкие задачи: разобрать выгрузку, переименовать файлы, собрать отчёт из нескольких таблиц.
- Небольшим командам, которые пишут и сайт, и сервер на одном языке — меньше переключений между технологиями.
- Тем, кто изучает программирование: язык один для браузера и для сервера, а результат виден сразу.
А вот если вам нужна готовая программа для повседневных задач, Node.js сам по себе не поможет: это инструмент для тех, кто пишет или запускает код.
Плюсы
- Полностью бесплатен, открытый код и лицензия MIT
- Один язык и для браузера, и для сервера
- Огромное хранилище готовых пакетов, почти всё уже написано
- Хорошо держит много одновременных подключений
- Линия LTS обновляется годами, не нужно часто переезжать
Минусы
- Нет интерфейса и русского языка: всё через командную строку
- Папка с зависимостями проекта разрастается до сотен мегабайт
- Чужие пакеты — это чужой код: встречаются заброшенные и небезопасные
- Тяжёлые вычисления в одном потоке выполняются медленно
- Проектам нужны разные версии, приходится ставить менеджер версий
Сколько стоит
Node.js бесплатен полностью и на всех системах: платных версий, подписок и ограничений для коммерческого использования нет. Проектом управляет некоммерческая организация OpenJS Foundation, код открыт по лицензии MIT, его можно использовать в закрытых продуктах. Хранилище пакетов npm тоже бесплатно для публичных пакетов; платить нужно только за приватные пакеты организации, но обычному разработчику это не требуется.
Как установить
- Откройте официальный сайт Node.js и скачайте версию из линии LTS для своей системы. Для Windows это обычный установщик, для macOS — пакет установки.
- Запустите установщик и пройдите шаги со стандартными настройками: вместе с Node.js поставится менеджер пакетов npm.
- Галочку про автоматическую установку дополнительных инструментов для сборки можно снять: она нужна редким пакетам, которые собираются из исходников, и тянет за собой много лишнего.
- Откройте терминал и проверьте, что всё встало: команды с запросом версии должны вывести номера Node.js и npm.
- Если проектов несколько и им нужны разные версии, вместо обычного установщика поставьте менеджер версий — тогда версию можно переключать под каждый проект.
Частые вопросы
Работает ли Node.js в России?
Да. И сам Node.js, и хранилище пакетов npm доступны из России, установка и обновления проходят без ограничений. Отдельные чужие пакеты могут жить на недоступных площадках, но это редкость.
Какую версию выбрать: LTS или последнюю?
Для работы — LTS: её поддерживают долго, и все инструменты рассчитаны прежде всего на неё. Текущая линия нужна, только если вам нужна возможность, которой в LTS ещё нет.
Чем Node.js отличается от JavaScript в браузере?
Язык тот же, окружение разное. В браузере у кода есть страница и её элементы, но нет доступа к файлам компьютера. В Node.js наоборот: страницы нет, зато есть файлы, сеть, процессы и переменные окружения.
Есть ли русский язык?
Интерфейса как такового нет — есть командная строка, сообщения в ней на английском. Часть официальной документации переведена сообществом, но на точность перевода лучше не полагаться.
Нужно ли устанавливать npm отдельно?
Нет, npm входит в установщик Node.js. Обновить его потом можно отдельной командой. Другие менеджеры пакетов ставят по желанию, если так требует инструкция проекта.
Можно ли держать на компьютере несколько версий?
Да, для этого есть менеджеры версий: они скачивают нужные версии рядом и переключают активную одной командой или автоматически по файлу в папке проекта.
