Установка Node.js и npm

Protractor — это end-to-end фреймворк для тестирования Angular-приложений, построенный поверх WebDriverJS. Его работа полностью основана на платформе Node.js, а установка, обновление и управление зависимостями выполняются через npm (Node Package Manager). Без корректно установленной среды Node.js дальнейшая настройка Protractor невозможна.

Node.js обеспечивает выполнение JavaScript-кода вне браузера, а npm выступает централизованным менеджером пакетов, через который распространяются сам Protractor, Selenium Server, WebDriver-бинарники и вспомогательные библиотеки.


Что такое Node.js

Node.js — это серверная платформа, построенная на JavaScript-движке V8. Она предоставляет:

  • асинхронную модель выполнения
  • событийно-ориентированную архитектуру
  • высокую производительность при работе с I/O
  • встроенную поддержку модульной системы

Для тестирования это означает быструю и стабильную работу тестов, удобную интеграцию с CI/CD и широкую экосистему готовых инструментов.


Что такое npm

npm — стандартный менеджер пакетов для Node.js. Он решает несколько ключевых задач:

  • установка библиотек и фреймворков
  • управление версиями зависимостей
  • запуск скриптов
  • публикация и обновление пакетов

Protractor распространяется именно через npm, как и большинство инструментов тестовой экосистемы JavaScript.


Выбор версии Node.js

Node.js выпускается в двух основных ветках:

  • LTS (Long Term Support) — стабильные версии с длительной поддержкой
  • Current — версии с новыми возможностями, но без гарантированной стабильности

Для тестирования и учебных проектов рекомендуется использовать LTS-версию, так как:

  • Protractor и WebDriverJS ориентированы на LTS
  • минимизируется риск несовместимости зависимостей
  • обеспечивается стабильная работа в CI-окружениях

Установка Node.js на Windows

  1. Загрузка установочного пакета с официального сайта nodejs.org
  2. Выбор LTS-версии
  3. Запуск .msi-инсталлятора
  4. Использование стандартных параметров установки
  5. Автоматическая установка npm вместе с Node.js

После завершения установки Node.js и npm добавляются в системную переменную PATH.


Установка Node.js на macOS

Через официальный установщик

  • Загрузка .pkg-файла с nodejs.org
  • Установка стандартным способом
  • npm устанавливается автоматически

Через Homebrew

brew install node

Этот способ удобен для разработчиков, так как упрощает обновление и управление версиями.


Установка Node.js на Linux

Для Linux рекомендуется использовать менеджер пакетов или nvm.

Через пакетный менеджер (пример для Ubuntu)

sudo apt update
sudo apt install nodejs npm

Недостаток метода — возможная установка устаревшей версии.

Через nvm (Node Version Manager)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash

После установки:

nvm install --lts
nvm use --lts

Преимущества nvm:

  • параллельная установка нескольких версий Node.js
  • быстрая смена версии
  • удобство для разных проектов

Проверка корректности установки

После установки выполняются команды:

node -v
npm -v

Они должны вернуть номера версий без ошибок. Это означает, что Node.js и npm доступны из командной строки.


Глобальные и локальные пакеты npm

npm поддерживает два уровня установки пакетов:

  • глобальная установка (-g)
  • локальная установка (в пределах проекта)

Пример глобальной установки:

npm install -g protractor

Глобальная установка используется для CLI-инструментов, таких как Protractor, webdriver-manager и вспомогательные утилиты.

Локальная установка применяется для библиотек, используемых непосредственно в коде проекта.


Структура npm-проекта

При инициализации проекта создаётся файл package.json:

npm init

Этот файл содержит:

  • имя проекта
  • версию
  • список зависимостей
  • скрипты запуска
  • метаданные проекта

В контексте Protractor package.json становится центральной точкой управления тестовой инфраструктурой.


node_modules и управление зависимостями

Все локально установленные пакеты помещаются в каталог node_modules. Он может содержать тысячи файлов и не должен храниться в системе контроля версий.

Зависимости фиксируются в:

  • package.json
  • package-lock.json

package-lock.json гарантирует воспроизводимость окружения, что критично для автотестов.


Обновление npm и Node.js

Обновление npm

npm install -g npm

Обновление Node.js

  • через установщик (Windows/macOS)
  • через Homebrew
  • через nvm:
nvm install --lts
nvm use --lts

Регулярное обновление позволяет избегать уязвимостей и проблем совместимости.


Типичные проблемы и их причины

node: command not found Причина: Node.js не добавлен в PATH.

Permission denied при установке глобальных пакетов Причина: права доступа в системные директории. Решение: использование nvm или корректная настройка прав.

Старые версии Node.js Причина: установка через системный пакетный менеджер без обновлений.


Значение корректной установки для Protractor

Protractor использует:

  • асинхронные возможности Node.js
  • npm-пакеты для управления зависимостями
  • глобальные CLI-инструменты
  • скрипты запуска через npm

Ошибки на этапе установки Node.js и npm приводят к нестабильной работе тестов, проблемам с Selenium Server и невозможности запуска автотестов в CI.

Корректно настроенная среда Node.js является фундаментом для всей последующей работы с Protractor и JavaScript-тестированием.