deluxebrain.ansible_role_nodejs

Nazwa roli: NODEJS

Status budowy

Instalator NodeJS dla systemu Linux. Zawiera domyślnie wtyczki node-build i nodenv-vars do instalacji wersji Node.js oraz zmiennych środowiskowych per projekt.

Wymagania

Brak.

Zmienne roli

Wszystkie wymienione zmienne są zdefiniowane w defaults/main.yml. Poszczególne zmienne można ustawić lub nadpisać, konfigurując je w playbooku dla tej roli.

  • nodenv_version: ( domyślnie: najnowsza )
    • wersja nodenv do zainstalowania
  • nodebuild_version: ( domyślnie: najnowsza )
    • wersja node-build do zainstalowania
  • nodenvvars_version: ( domyślnie: najnowsza )
    • wersja nodenv-vars do zainstalowania
  • init_shell: ( domyślnie: tak )
    • Skonfiguruj powłokę, aby ładowała nodenv
  • global_nodejs_version: ( domyślnie: "" )
    • Wersja Node.js używana domyślnie
  • nodejs_versions: ( domyślnie: [] )
    • Lista wersji Node.js do zainstalowania
  • plugins: ( domyślnie: [] )
    • Lista wtyczek do zainstalowania, określona jako lista:
      • name: nazwa wtyczki
      • repo: repozytorium wtyczki na Githubie
      • version: wersja wtyczki, określ "najnowsza", aby użyć HEAD

Zależności

Brak.

Przykład Playbooka

Poniższy przykład pokazuje:

  • Instalację wybranych wersji nodenv
  • Instalację wybranej wersji Node.js
  • Instalację wtyczki nodenv-default-packages
- hosts: serwery
  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: najnowsza

Instalacja deweloperska

Pakiety są podzielone na zależności deweloperskie i produkcyjne, którymi zarządza się za pomocą dołączonych plików requirements-dev.txt i requirements.txt.

Pakiety produkcyjne są zarządzane przez zestaw narzędzi pip-tools, który instaluje i synchronizuje zależności projektu za pomocą dołączonego pliku requirements.in.

# Utwórz wirtualne środowisko projektu
# Zainstaluj zależności deweloperskie do wirtualnego środowiska
make install

pip-tools generuje plik requirements.txt, który jest pełnym plikiem wymagań używanym zarówno do synchronizacji wirtualnego środowiska Pythona, jak i do instalacji pakietów w środowisku produkcyjnym.

Należy pamiętać, że plik requirements.txt nie powinien być edytowany ręcznie i musi być regenerowany za każdym razem, gdy plik requirements.in zostanie zmieniony. Można to zrobić w następujący sposób, co również synchronizuje wszelkie zmiany pakietów w wirtualnym środowisku:

# Kompiluj plik requirements.in do requirements.txt
# Zainstaluj pakiety z requirements.txt do wirtualnego środowiska
make sync

Narzędzia pip-tools oraz inne wymagania deweloperskie są instalowane za pomocą pliku requirements-dev.txt, jak pokazano poniżej:

Użycie roli

Wersje NodeJS są zarządzane za pomocą nodenv.

nodenv pozwala korzystać z wielu wersji Node na swoim komputerze.

# Zainstaluj konkretną wersję Node
nodenv install 12.3.1

# Utwórz katalog projektu
mkdir ~/my-project && cd $_

# Skonfiguruj projekt, aby korzystał z konkretnej wersji Node
nodenv local 12.3.1   # tworzy .node-version

Zarządzanie pakietami za pomocą npm

Użycie npm do tworzenia nowego projektu pokazano w poniższym przykładzie:

npx license mit > LICENSE     # Wygeneruj plik licencji
npx gitignore node            # Określ .gitignore
npx covgen <EMAIL_ADDRESS>    # Określ adres e-mail Kodeksu postępowania
npm init -y                   # Zainicjuj projekt
npm install <pakiet>

Należy pamiętać, że npx powinien być używany zamiast instalowania pakietów globalnie.

Inne narzędzia

nodenv-vars

nodenv-vars to wtyczka do nodenv, która umożliwia ustawianie zmiennych środowiskowych dla aplikacji na poziomie projektu.

Jej użycie pokazano w poniższym przykładzie:

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

Licencja

MIT / BSD

Informacje o autorze

Ta rola została stworzona w 2020 roku przez deluxebrain.

O projekcie

Node.js installer for Linux

Zainstaluj
ansible-galaxy install deluxebrain.ansible_role_nodejs
Licencja
mit
Pobrania
752
Właściciel