Установка Apache Cordova на Ubuntu 18.04 LTS (Bionic Beaver)

Что такое Cordova
Cordova — свободный фреймворк для создания гибридных мобильных приложений с использованием HTML5, CSS3 и JavaScript. Он позволяет запускать одно и то же веб-приложение на разных платформах (Android, iOS, Windows) с доступом к нативным API через плагины.
Коротко: гибридное приложение = веб-код + контейнер (WebView) + нативные плагины.
Требования
- Сервер или рабочая станция с Ubuntu 18.04 LTS (Bionic Beaver).
- Непривилегированный пользователь с правами sudo.
- Для сборки Android: установленный Android SDK/Android Studio и настроенные переменные окружения (см. раздел «Проверка зависимостей»).
Установка Node.js
Cordova устанавливается через npm, поэтому необходим Node.js. В Ubuntu 18.04 свежие версии Node.js в репозитории по умолчанию могут отсутствовать. В этом примере используется ветка 8.x, как в исходной инструкции.
Выполните:
sudo apt-get install python-software-properties -y
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -После добавления репозитория установите Node.js:
sudo apt-get install nodejs -yПояснение: первый блок добавляет PPA от NodeSource и конфигурирует apt для установки Node.js 8.x. Если вам нужна другая версия Node.js, замените setup_8.x на соответствующую ветку.
Установка Cordova
Установите Cordova глобально через npm:
sudo npm install -g cordovaОжидаемый вывод (пример):
/usr/bin/cordova -> /usr/lib/node_modules/cordova/bin/cordova
+ [email protected]
updated 1 package in 15.829sПроверьте версию:
cordova --versionПример вывода:
? May Cordova anonymously report usage statistics to improve the tool over time? Yes
Thanks for opting into telemetry to help us improve cordova.
8.0.0Важно: при первом запуске Cordova может спросить об анонимной телеметрии. Решение за вами.
Создание первого приложения
Создадим приложение с именем TestApp:
cordova create TestAppОжидаемый ответ:
Creating a new cordova project.Перейдите в каталог проекта и добавьте платформу Android:
cd TestApp
cordova platform add androidФрагмент типичного вывода при добавлении платформы Android (сокращённо):
Using cordova-fetch for cordova-android@~7.0.0
Adding android project...
Creating Cordova project for the Android platform:
Path: platforms/android
Package: io.cordova.hellocordova
Name: HelloCordova
Activity: MainActivity
Android target: android-26
Subproject Path: CordovaLib
Subproject Path: app
Android project created with [email protected]
Android Studio project detected
Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project
Installing "cordova-plugin-whitelist" for androidОбратите внимание: в выводе указаны версии cordova-android (~7.0.0) и целевой Android API (android-26). Эти сведения пригодятся при настройке Android SDK.
Просмотр и удаление платформ
Список установленных и доступных платформ:
cordova platform -lsПример:
Installed platforms:
android 7.0.0
Available platforms:
browser ~5.0.1
ios ~4.5.4
osx ~4.0.1
windows ~5.0.0
www ^3.12.0Чтобы удалить платформу:
cordova platform remove androidПроверка зависимостей для сборки
Перед сборкой проверьте, что система удовлетворяет требованиям:
cordova requirementsДля Android убедитесь, что установлены: Java JDK (обычно OpenJDK 8/11), Android SDK, платформы SDK соответствующего уровня (например, API 26), и переменные окружения ANDROID_HOME/ANDROID_SDK_ROOT.
Сборка приложения
Если все зависимости установлены, соберите приложение для Android:
cordova build androidПри успешной сборке вы получите APK в каталоге platforms/android/app/build/outputs/apk/ или в аналогичной структуре проекта.
Контрольный список перед сборкой
Разработчик:
- Проверить версию Node.js: node -v
- Проверить версию Cordova: cordova –version
- Убедиться, что проект создан: ls TestApp
Системный администратор / DevOps:
- Установить JDK и Android SDK
- Настроить ANDROID_HOME и PATH
- Проверить наличие нужных SDK-платформ и инструментов (platform-tools, build-tools)
Частые проблемы и решения
- Ошибка: «ANDROID_HOME is not set» — экспортируйте ANDROID_HOME в ~/.bashrc или ~/.profile и перезапустите терминал.
- Несоответствие уровня Android API — установите нужную платформу SDK через SDK Manager.
- Права доступа npm при глобальной установке — используйте sudo или настройте npm для установки глобальных пакетов в домашнюю директорию.
Важно: при использовании sudo npm install -g cordova требуется административный доступ. В крупных командах предпочтительнее использовать менеджер пакетов без sudo или контейнеризацию для изоляции окружения.
Мини‑методология для воспроизводимой сборки
- Фиксируйте версии Node.js и Cordova в документации проекта.
- Храните файл package.json и config.xml в системе контроля версий.
- Используйте CI для автоматической сборки и запуска cordova requirements + cordova build.
- Логируйте окружение сборки (node -v, npm -v, cordova –version, java -version).
Критерии приёмки
- Приложение успешно собирается для Android без ошибок.
- APK запускается на целевом эмуляторе или реальном устройстве.
- Нативные функции, необходимые приложению, работают через соответствующие плагины.
Полезные команды (шпаргалка)
- Установка Node.js: см. setup_8.x команды выше
- Установка Cordova: sudo npm install -g cordova
- Создание проекта: cordova create TestApp
- Добавление платформы: cordova platform add android
- Список платформ: cordova platform -ls
- Удаление платформы: cordova platform remove android
- Проверка зависимостей: cordova requirements
- Сборка: cordova build android
Резюме
Apache Cordova даёт быстрый путь к созданию кроссплатформенных мобильных приложений с использованием веб‑технологий. На Ubuntu 18.04 процесс сокращается до установки Node.js, глобальной установки cordova, создания проекта и добавления платформы. Для сборки Android дополнительно потребуются JDK и Android SDK. Следуйте контрольным спискам и фиксируйте версии для воспроизводимости.
Заметки
- Если вам нужна поддержка iOS, её сборка требует macOS и Xcode.
- Для современных проектов рассмотрите альтернативы и сравните требования: Capacitor, React Native, Flutter — они дают другие балансы между нативом и вебом.
Похожие материалы
Как защитить Windows от трояна Emotet
Как изменить язык YouTube — инструкция
iCloud Photos не синхронизируется — быстрые решения
Cordon и drain в Kubernetes — безопасное обслуживание узлов
Убрать режим уведомления Windows