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: репозиторий плагина на GitHub
      • version: версия плагина, укажите "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.

О проекте

Node.js installer for Linux

Установить
ansible-galaxy install deluxebrain/ansible-role-nodejs
Лицензия
mit
Загрузки
736
Владелец