ansible_role_nodejs
Название роли: NODEJS
Установщик NodeJS для Linux. Включает плагины node-build и nodenv-vars по умолчанию для установки версий Node.js и переменных окружения для каждого проекта соответственно.
Требования
Нет.
Переменные роли
Все перечисленные переменные определены в defaults/main.yml
. Отдельные переменные могут быть заданы или переопределены, установив их в плейбуке для данной роли.
nodenv_version
: (по умолчанию: latest)- Версия nodenv для установки
nodebuild_version
: (по умолчанию: latest)- Версия node-build для установки
nodenvvars_version
: (по умолчанию: latest)- Версия nodenv-vars для установки
init_shell
: (по умолчанию: yes)- Настроить оболочку для загрузки nodenv
global_nodejs_version
: (по умолчанию: "")- Версия Node.js, которая будет использоваться по умолчанию
nodejs_versions
: (по умолчанию: [])- Список версий Node.js для установки
plugins
: (по умолчанию: [])- Список плагинов для установки, указанный в виде списка:
name
: название плагинаrepo
: репозиторий плагина на GitHubversion
: версия плагина, укажите "latest" для актуальной версии
- Список плагинов для установки, указанный в виде списка:
Зависимости
Нет.
Пример плейбука
Пример ниже для следующего:
- Установка конкретных версий
nodenv
- Установка конкретной версии Node.js
- Установка плагина
nodenv-default-packages
- hosts: servers
roles:
- deluxebrain.python
nodenv_version: 1.3.1
global_nodenv_version: 12.3.1
nodenv_versions:
- 12.3.1
plugins:
- name: nodenv-default-packages
repo: https://github.com/nodenv/nodenv-default-packages.git
version: latest
Установка для разработки
Пакеты разбиты на зависимости для разработки и продукции, которые управляются через включенные файлы requirements-dev.txt
и requirements.txt
соответственно.
Пакеты для продукции управляются с помощью набора pip-tools
, который устанавливает и синхронизирует зависимости проекта через включенный файл requirements.in
.
# Создание виртуального окружения для проекта
# Установка зависимостей для разработки в виртуальное окружение
make install
pip-tools
отвечает за создание requirements.txt
, который является полностью зафиксированным файлом зависимостей, используемым как для синхронизации виртуального окружения Python, так и для установки пакетов в продуктивной среде.
Обратите внимание, что файл requirements.txt
не должен редактироваться вручную и его необходимо регенерировать каждый раз, когда изменяется файл requirements.in
. Это делается следующим образом, что также синхронизирует любые изменения пакетов в виртуальном окружении:
# Компиляция файла requirements.in в requirements.txt
# Установка пакетов из requirements.txt в виртуальное окружение
make sync
pip-tools
и другие зависимости для разработки устанавливаются через файл requirements-dev.txt
, следующим образом:
Использование роли
Версии NodeJS управляются через nodenv
.
nodenv
позволяет использовать несколько версий Node на вашем компьютере.
# Установка конкретной версии Node
nodenv install 12.3.1
# Создание директории проекта
mkdir ~/my-project && cd $_
# Настройка проекта для использования конкретной версии Node
nodenv local 12.3.1 # создает .node-version
Управление пакетами с помощью npm
Использование npm для создания нового проекта демонстрируется в следующем примере:
npx license mit > LICENSE # Генерация файла лицензии
npx gitignore node # Указание .gitignore
npx covgen <EMAIL_ADDRESS> # Указание адреса электронной почты для Кодекса поведения
npm init -y # Инициализация проекта
npm install <package>
Обратите внимание, что лучше использовать npx
, чем устанавливать пакеты глобально.
Другие инструменты
nodenv-vars
nodenv-vars
— это плагин для nodenv
, который позволяет устанавливать переменные окружения для приложений на уровне проекта.
Его использование демонстрируется в следующем примере:
echo FOO=BAR >> .nodenv-vars
$ nodenv vars
export FOO='BAR'
Лицензия
MIT / BSD
Информация об авторе
Эта роль была создана в 2020 году deluxebrain.
ansible-galaxy install deluxebrain/ansible-role-nodejs