PnX-SI / UsersHub

Application web de gestion centralisée des utilisateurs
GNU General Public License v3.0
13 stars 24 forks source link

Utilisation NVM et version Node.js 10.x dépréciée #149

Open Gaetanbrl opened 3 years ago

Gaetanbrl commented 3 years ago

Description

Node.js 10.x deprecated

En lien avec #147 et l'installation via Ansible, j'ai un soucis / des questions de versions entre nvm / Node.js.

En souhaitant installer manuellement Node.js 10.x, cette version (saisie dans dans app/static/.nvmrc) semble dépréciée (voir le planning) :

https://github.com/PnX-SI/UsersHub/blob/f0d7d55029d1448b06908fa695405cc8d12770cb/app/static/.nvmrc#L1

                              DEPRECATION WARNING                            
  Node.js 10.x is no longer actively supported!

  You will not receive security or critical stability updates for this version.
  You should migrate to a supported version of Node.js as soon as possible.
  Use the installation script that corresponds to the version of Node.js you
  wish to install. e.g.

   * https://deb.nodesource.com/setup_12.x — Node.js 12 LTS "Erbium"

   * https://deb.nodesource.com/setup_14.x — Node.js 14 LTS "Fermium" (recommended)

   * https://deb.nodesource.com/setup_16.x — Node.js 16 "Gallium"

Double install Node.Js

Dans les faits, l'installation de usershub semble installer 2x nodejs.

  1. Dans les prérequis de la documentation :
    curl -sL https://deb.nodesource.com/setup_10.x | bash -
    sudo apt-get install -y nodejs
  2. Dans NVM via le script nvm/v0.33.6/install.sh

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash

Ce script comprenant la section suivante :

#
# Automatically install Node.js
#
nvm_install_node() {
  local NODE_VERSION
  NODE_VERSION="$(nvm_node_version)"
...

Questions

  1. Pourquoi utiliser NVM et ne pas utiliser Node.js directement pour installer l'application via une commande du type : cd ~/usershub/app/static && npm install

  2. Avez-vous prévu un upgrade Node.js ou avez-vous déjà fait un test sur une version plus récente ?

  3. Parmi les deux façon décrite dans la doc, quelle est selon vous la bonne façon d'installer NVM / Node.js ?

Merci.

Gaetanbrl commented 3 years ago

Par défaut (sous Debian 11), la commande d'installation de la doc installe Node.js 12.x car c'est la version ciblée par le gestionnaire apt :

# apt-cache policy nodejs

nodejs:

  Installé : (aucun)
  Candidat : 12.22.5~dfsg-2~11u1

 Table de version :
     12.22.5~dfsg-2~11u1 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages
        500 http://security.debian.org/debian-security bullseye-security/main amd64 Packages
     10.24.1-deb-1nodesource1 500
        500 https://deb.nodesource.com/node_10.x bullseye/main amd64 Packages

Si vous souhaitez avoir une version Node.js v10.x on doit donc exécuter ces commandes (en root):

apt install curl
curl -fsSL https://deb.nodesource.com/setup_10.x | bash -
apt install -y nodejs=10.24.1-deb-1nodesource1
TheoLechemia commented 3 years ago

Bonjour,

Pourquoi utiliser NVM et ne pas utiliser Node.js directement pour installer l'application via une commande du type : cd ~/usershub/app/static && npm install

nvm est un simplement un gestionnaire de version de Node. Il sert à installer une version précise de node et npm et permet de faire cohabiter plusieurs version de node sur la même machine

Avez-vous prévu un upgrade Node.js ou avez-vous déjà fait un test sur une version plus récente ?

Non rien de prévu, mais toute contribution est la bienvenue !

Parmi les deux façon décrite dans la doc, quelle est selon vous la bonne façon d'installer NVM / Node.js ?

-> nvm

Gaetanbrl commented 3 years ago

Merci @TheoLechemia, je comprends que c'est utile si d'autres projets marchent avec une autre version Node.js sur un même environnement.

Dans mon cas j'ai une instance sur une VM dédiée, donc pas de version alternative de Node.js. . Si la version Node.js doit changer ce serait potentiellement impactant sur la version npm et potentiellement aussi sur la version des paquets. Dans ce cas, nvm ne serait pas utile pour vérifier s'il y a des régressions entre les versions de dépendances de l'application.

Pour le moment via Ansible je vais dans un premier temps utiliser Node.js v 10.15.3 (version commune à GeoNature / Usershub / TaxHub). Je rajouterai nvm ensuite.