deluxebrain.ansible_role_nodejs

Rollenname: NODEJS

Build Status

NodeJS-Installer für Linux. Beinhaltet standardmäßig die Plugins node-build und nodenv-vars zur Installation von Node.js-Versionen und Projektumgebungsvariablen.

Anforderungen

Keine.

Rollenvariablen

Alle aufgeführten Variablen sind in defaults/main.yml definiert. Individuelle Variablen können in einem Playbook für diese Rolle festgelegt oder überschrieben werden.

  • nodenv_version: (standard: latest)
    • zu installierende nodenv-Version
  • nodebuild_version: (standard: latest)
    • zu installierende node-build-Version
  • nodenvvars_version: (standard: latest)
    • zu installierende nodenv-vars-Version
  • init_shell: (standard: yes)
    • Konfiguriert die Shell, um nodenv zu laden
  • global_nodejs_version: (standard: "")
    • Standardversion von Node.js
  • nodejs_versions: (standard: [])
    • Liste der zu installierenden Node.js-Versionen
  • plugins: (standard: [])
    • Liste der zu installierenden Plugins, angegeben als Liste von:
      • name: Pluginname
      • repo: Plugin-GitHub-Repository
      • version: Pluginversion, "latest" für HEAD angeben

Abhängigkeiten

Keine.

Beispiel-Playbook

Beispiel unten für Folgendes:

  • Installation spezifischer Versionen von nodenv
  • Installation einer spezifischen Version von Node.js
  • Installation des nodenv-default-packages nodenv-Plugins
- 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

Entwicklungsinstallation

Pakete sind in Entwicklungs- und Produktionsabhängigkeiten unterteilt, die über die enthaltenen Dateien requirements-dev.txt und requirements.txt verwaltet werden.

Produktionspakete werden durch das pip-tools-Suite verwaltet, die die Projektabhängigkeiten über die enthaltene Datei requirements.in installiert und synchronisiert.

# Erstelle Projekt-virtuelle Umgebung
# Installiere Entwicklungsabhängigkeiten in die virtuelle Umgebung
make install

pip-tools ist verantwortlich für die Erstellung der requirements.txt, die eine vollständig festgelegte Anforderungen Datei ist, die sowohl zum Synchronisieren der Python-virtuellen Umgebung als auch zur Installation von Paketen in einer Produktionsumgebung verwendet wird.

Beachte, dass die requirements.txt-Datei nicht manuell bearbeitet werden sollte und jedes Mal neu generiert werden muss, wenn die requirements.in-Datei geändert wird. Dies erfolgt wie folgt, was auch alle Paketänderungen in die virtuelle Umgebung synchronisiert:

# Kompiliere die requirements.in-Datei in requirements.txt
# Installiere die requirements.txt-Pakete in die virtuelle Umgebung
make sync

pip-tools und andere Entwicklungsanforderungen werden über die Datei requirements-dev.txt installiert, wie folgt:

Rollenverwendung

NodeJS-Versionen werden über nodenv verwaltet.

nodenv ermöglicht es dir, mehrere Node-Versionen auf deinem Rechner zu verwenden.

# Installiere spezifische Node-Version
nodenv install 12.3.1

# Erstelle Projektverzeichnis
mkdir ~/my-project && cd $_

# Konfiguriere das Projekt, um eine spezifische Node-Version zu verwenden
nodenv local 12.3.1   # erstellt .node-version

Paketverwaltung mit npm

Die Verwendung von npm zur Erstellung eines neuen Projekts wird im folgenden Beispiel demonstriert:

npx license mit > LICENSE     # Lizenzdatei generieren
npx gitignore node            # .gitignore festlegen
npx covgen <EMAIL_ADDRESS>    # E-Mail-Adresse für den Verhaltenskodex festlegen
npm init -y                   # Projekt initialisieren
npm install <package>

Beachte, dass npx bevorzugt verwendet werden sollte, statt Pakete global zu installieren.

Weitere Werkzeuge

nodenv-vars

nodenv-vars ist ein Plugin für nodenv, das projektbezogene Anwendungsumgebungsvariablen erlaubt.

Seine Verwendung wird im folgenden Beispiel demonstriert:

echo FOO=BAR >> .nodenv-vars
$ nodenv vars
export FOO='BAR'

Lizenz

MIT / BSD

Autorinformationen

Diese Rolle wurde 2020 von deluxebrain erstellt.

Über das Projekt

Node.js installer for Linux

Installieren
ansible-galaxy install deluxebrain.ansible_role_nodejs
GitHub Repository
Lizenz
mit
Downloads
752
Besitzer