deluxebrain.ansible_role_nodejs
Nom du rôle : NODEJS
Installeur NodeJS pour Linux. Inclut par défaut les plugins node-build et nodenv-vars pour installer les versions de Node.js et les variables d'environnement par projet.
Exigences
Aucune.
Variables du rôle
Toutes les variables listées sont définies dans defaults/main.yml
.
Les variables individuelles peuvent être définies ou remplacées en les configurant dans un playbook pour ce rôle.
nodenv_version
: ( par défaut : dernier )- Version de nodenv à installer
nodebuild_version
: ( par défaut : dernier )- Version de node-build à installer
nodenvvars_version
: ( par défaut : dernier )- Version de nodenv-vars à installer
init_shell
: ( par défaut : oui )- Configure le shell pour charger nodenv
global_nodejs_version
: ( par défaut : "" )- Version de Node.js à utiliser par défaut
nodejs_versions
: ( par défaut : [] )- Liste des versions de Node.js à installer
plugins
: ( par défaut : [] )- Liste des plugins à installer, spécifiée sous forme de liste de :
name
: nom du pluginrepo
: dépôt GitHub du pluginversion
: version du plugin, spécifiez "dernier" pour HEAD
- Liste des plugins à installer, spécifiée sous forme de liste de :
Dépendances
Aucune.
Exemple de Playbook
Exemple ci-dessous pour :
- Installation de versions spécifiques de
nodenv
- Installation de versions spécifiques de Node.js
- Installation du plugin nodenv
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: dernier
Installation pour le développement
Les packages sont divisés en dépendances de développement et de production, qui sont gérées via les fichiers inclus requirements-dev.txt
et requirements.txt
.
Les packages de production sont gérés par suite pip-tools
, qui installe et synchronise les dépendances du projet via le fichier inclus requirements.in
.
# Créer un environnement virtuel de projet
# Installer les dépendances de développement dans l'environnement virtuel
make install
pip-tools
est responsable de la génération du fichier requirements.txt
, qui est un fichier de dépendances complètement figé utilisé à la fois pour synchroniser l’environnement virtuel Python et pour l’installation de packages dans un environnement de production.
Notez que cela signifie que le fichier requirements.txt
ne doit pas être modifié manuellement et doit être régénéré chaque fois que le fichier requirements.in
est modifié. Cela se fait comme suit, synchronisant également tout changement de package dans l'environnement virtuel :
# Compiler le fichier requirements.in en requirements.txt
# Installer les packages requirements.txt dans l'environnement virtuel
make sync
Les pip-tools
et d'autres dépendances de développement sont installés via le fichier requirements-dev.txt
, comme suit :
Utilisation du rôle
Les versions de NodeJS sont gérées via nodenv
.
nodenv
vous permet d'utiliser plusieurs versions de Node sur votre machine.
# Installer une version spécifique de Node
nodenv install 12.3.1
# Créer un répertoire de projet
mkdir ~/mon-projet && cd $_
# Configurer le projet pour utiliser une version spécifique de Node
nodenv local 12.3.1 # crée .node-version
Gestion des packages avec npm
L'utilisation de npm pour créer un nouveau projet est démontrée dans l'exemple suivant :
npx license mit > LICENSE # Générer le fichier de licence
npx gitignore node # Spécifier .gitignore
npx covgen <EMAIL_ADDRESS> # Spécifier l'adresse e-mail pour le Code de Conduite
npm init -y # Initialiser le projet
npm install <package>
Notez que npx
doit être préféré à l'installation de packages globalement.
Autres outils
nodenv-vars
nodenv-vars
est un plugin pour nodenv
qui permet de définir des variables d'environnement spécifiques à chaque projet.
Son utilisation est démontrée dans l'exemple suivant :
echo FOO=BAR >> .nodenv-vars
$ nodenv vars
export FOO='BAR'
Licence
MIT / BSD
Informations sur l'auteur
Ce rôle a été créé en 2020 par deluxebrain.
ansible-galaxy install deluxebrain.ansible_role_nodejs