deluxebrain.ansible_role_nodejs

Nom du rôle : NODEJS

Statut de construction

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 plugin
      • repo: dépôt GitHub du plugin
      • version: version du plugin, spécifiez "dernier" pour HEAD

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.

À propos du projet

Node.js installer for Linux

Installer
ansible-galaxy install deluxebrain.ansible_role_nodejs
Licence
mit
Téléchargements
752
Propriétaire