deluxebrain.ansible_role_nodejs
Nazwa roli: NODEJS
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 wtyczkirepo
: repozytorium wtyczki na Githubieversion
: wersja wtyczki, określ "najnowsza", aby użyć HEAD
- Lista wtyczek do zainstalowania, określona jako lista:
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.
ansible-galaxy install deluxebrain.ansible_role_nodejs