zds-site icon indicating copy to clipboard operation
zds-site copied to clipboard

Mettre à jour la version de Node.js de l'installeur Windows

Open helmasaur opened this issue 4 years ago • 12 comments

Description du bug

Le projet utilise désormais la version 12 (LTS) de Node.js. Or, le script installe la version 10 (LTS) qui n'est plus active (mais encore maintenue jusqu'à l'année prochaine). Ce n'est pas urgent mais je pense tout le monde utilisant la même version pourrait éviter des problèmes, surtout pour Node.js.

Correction du bug

Aux lignes 97 et 98, il faudrait remplacé le contenu des deux variables puis tester si tout fonctionne correctement.

 $node_filename = "node-v10.18.0-win-x64"
 $node_url="https://nodejs.org/dist/v10.18.0/$node_filename.zip"

helmasaur avatar Jul 08 '20 14:07 helmasaur

Le mieux à faire serait de faire une procédure d'installation avec : https://github.com/coreybutler/nvm-windows

On demande à l'utilisateur de désinstaller globalement node puis d'installer par nvm, ça corrigera tous les problèmes notamment #5850

A-312 avatar Jul 09 '20 07:07 A-312

En terme de changement, tu dois ajouter un passage dans le code :

  • [ ] Dans l'idée : "Veillez à désinstaller toutes les versions de nodejs installées sur votre ordinateur et utiliser nvm pour gérer les versions nodejs de votre ordinateur. Vous trouverez la procédure d’installation de nvm : https://github.com/coreybutler/nvm-windows#installation--upgrades "
  • [ ] Dans le code supprimer : https://github.com/zestedesavoir/zds-site/blob/89c843d71d85b5232a7f51f242701fe778d8e7db/scripts/win/install_zds.ps1#L97-L132
  • Alerter les devs windows de ce changement (il y en a encore ?): Ils devront soit simplement supprimer et réinstaller zdsenv, soit supprimer la ligne dans zdsenv\Scripts\activate.ps1 et le dossier %VIRTUAL_ENV%\App\node

A-312 avatar Jul 09 '20 08:07 A-312

Je ne suis pas pour l'idée de demander à l'utilisateur de désinstaller quelque chose pour ensuite installer autre chose alors que ça peut fonctionner sans.

J'ai testé le script et hormis le problème du passage à l'environnement virtuel, tout fonctionne avec Node.js v10 et le 14 en global.

helmasaur avatar Jul 09 '20 15:07 helmasaur

alors que ça peut fonctionner sans.

Je suis curieux de voir si tu vas arriver à faire sans npm rebuild node-sass

A-312 avatar Jul 09 '20 18:07 A-312

J'ai dû utiliser cette commande à cause du conflit de version ?

helmasaur avatar Jul 09 '20 23:07 helmasaur

Contrairement aux autres packages nodejs, node-sass a une partie en C++, ils utilisent la fonctionnalités des addons C++, pendant l'installation nodejs va compilé le package avec node-gyp. [Supposition] Je pense que l’installation va à un moment ou un autre utiliser child-process qui va créer un nouvel environnement hors de notre environnement, utilisant donc l'environnement global et node global. D'ailleurs si tu as deux version incompatible (en tout cas quand j'avais essayé), node-sass refuser de build dans le zdsenv.

Les environnements python ne sont pas destinés à nodejs, c'est pour ça que sur linux on utilise nvm et que sur Windows on devrait faire pareil. La solution actuelle est du bricolage, il ne faut pas trop lui demander. Le seul moment où je n'ai pas eu de problème avec node-sass c'est quand j'ai utilisé nvm.

Normalement n'importe quel dev, devrait utiliser nvm avec nodejs pour du multiprojet

A-312 avatar Jul 10 '20 08:07 A-312

Merci beaucoup pour l'explication ! Je partais sur une mauvaise compréhension à la base.

J'aurai juste une question concernant l'utilisation de nvm : Node est toujours installé en local ? En soit, quel est le comportement du script avec nvm ?

helmasaur avatar Jul 10 '20 13:07 helmasaur

Merci beaucoup pour l'explication ! Je partais sur une mauvaise compréhension à la base.

J'aurai juste une question concernant l'utilisation de nvm : Node est toujours installé en local ? En soit, quel est le comportement du script avec nvm ?

NVM va changer la version de l'executable quand tu fais nvm use <version> par celle que tu souhaites, nvm sera global mais ce n'est pas génant car il permet une config local en tapant la commande (en tout cas, tu peux avoir node 12 et node 10 qui tourne en même temps pour deux projets).

A-312 avatar Jul 10 '20 16:07 A-312

NVM est-il installé par le script ou est-ce un prérequis (comme Git par exemple) pour le script ?

helmasaur avatar Jul 13 '20 02:07 helmasaur

Prérequis, l'utilisateur devra suivra la procédure d'installation sur le readme de nvm

A-312 avatar Jul 13 '20 08:07 A-312

Je propose de fermer ce ticket pour les raisons suivantes :

  • la PR associée est fermée ;
  • on souhaite déprécier l'installation sous Windows via le script et privilégier WSL (voir https://github.com/zestedesavoir/zds-site/issues/6173), et donc maintenir le script n'est plus nécessaire.

Qu'en penses-tu @Situphen ?

Arnaud-D avatar Sep 25 '21 10:09 Arnaud-D

J'attends l'avis d'artragis sur le ticket que tu cites mais s'il est d'accord alors on ferme ici.

Situphen avatar Sep 25 '21 10:09 Situphen