deluxebrain.ansible_role_nodejs
Nombre del Rol: NODEJS
Instalador de NodeJS para Linux. Incluye de forma predeterminada los complementos node-build y nodenv-vars para instalar versiones de Node.js y variables de entorno por proyecto, respectivamente.
Requisitos
Ninguno.
Variables del Rol
Todas las variables listadas se definen en defaults/main.yml
. Las variables individuales se pueden establecer o sobrescribir configurándolas en un playbook para este rol.
nodenv_version
: ( predeterminado: latest )- Versión de nodenv a instalar
nodebuild_version
: ( predeterminado: latest )- Versión de node-build a instalar
nodenvvars_version
: ( predeterminado: latest )- Versión de nodenv-vars a instalar
init_shell
: ( predeterminado: yes )- Configurar el shell para cargar nodenv
global_nodejs_version
: ( predeterminado: "" )- Versión de Node.js a usar por defecto
nodejs_versions
: ( predeterminado: [] )- Lista de versiones de Node.js a instalar
plugins
: ( predeterminado: [] )- Lista de complementos a instalar, especificados como una lista de:
name
: nombre del complementorepo
: repositorio de GitHub del complementoversion
: versión del complemento, especificar "latest" para HEAD
- Lista de complementos a instalar, especificados como una lista de:
Dependencias
Ninguna.
Ejemplo de Playbook
Ejemplo a continuación para lo siguiente:
- Instalación de versiones específicas de
nodenv
- Instalación de una versión específica de Node.js
- Instalación del complemento
nodenv-default-packages
de nodenv
- 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
Instalación de Desarrollo
Los paquetes se dividen en dependencias de desarrollo y de producción, que se gestionan a través de los archivos incluidos requirements-dev.txt
y requirements.txt
, respectivamente.
Los paquetes de producción se gestionan a través de la suite pip-tools
, que instala y sincroniza las dependencias del proyecto a través del archivo requirements.in
incluido.
# Crear el entorno virtual del proyecto
# Instalar dependencias de desarrollo en el entorno virtual
make install
pip-tools
es responsable de la generación del requirements.txt
, que es un archivo de requisitos completamente fijado utilizado tanto para la sincronización del entorno virtual de Python como para la instalación de paquetes en un entorno de producción.
Tenga en cuenta que esto significa que el archivo requirements.txt
no debe ser editado manualmente y debe regenerarse cada vez que se cambie el archivo requirements.in
. Esto se hace de la siguiente manera, lo que también sincroniza cualquier cambio de paquete en el entorno virtual:
# Compilar el archivo requirements.in a requirements.txt
# Instalar los paquetes de requirements.txt en el entorno virtual
make sync
pip-tools
y otros requisitos de desarrollo se instalan a través del archivo requirements-dev.txt
, de la siguiente manera:
Uso del Rol
Las versiones de NodeJS se gestionan a través de nodenv
.
nodenv
te permite usar múltiples versiones de Node en tu máquina.
# Instalar una versión específica de Node
nodenv install 12.3.1
# Crear un directorio para el proyecto
mkdir ~/my-project && cd $_
# Configurar el proyecto para usar una versión específica de Node
nodenv local 12.3.1 # crea .node-version
Gestión de paquetes usando npm
El uso de npm para crear un nuevo proyecto se demuestra en el siguiente ejemplo:
npx license mit > LICENSE # Generar archivo de licencia
npx gitignore node # Especificar .gitignore
npx covgen <EMAIL_ADDRESS> # Especificar la dirección de correo electrónico del Código de Conducta
npm init -y # Inicializar proyecto
npm install <package>
Tenga en cuenta que npx
debe ser preferido a la instalación de paquetes globalmente.
Otras herramientas
nodenv-vars
nodenv-vars
es un complemento para nodenv
que permite variables de entorno de aplicación por proyecto.
Su uso se demuestra en el siguiente ejemplo:
echo FOO=BAR >> .nodenv-vars
$ nodenv vars
export FOO='BAR'
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2020 por deluxebrain.
ansible-galaxy install deluxebrain.ansible_role_nodejs