zds-site
zds-site copied to clipboard
Mettre à jour la version de Node.js de l'installeur Windows
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"
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
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 danszdsenv\Scripts\activate.ps1
et le dossier%VIRTUAL_ENV%\App\node
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.
alors que ça peut fonctionner sans.
Je suis curieux de voir si tu vas arriver à faire sans npm rebuild node-sass
J'ai dû utiliser cette commande à cause du conflit de version ?
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
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 ?
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).
NVM est-il installé par le script ou est-ce un prérequis (comme Git par exemple) pour le script ?
Prérequis, l'utilisateur devra suivra la procédure d'installation sur le readme de nvm
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 ?
J'attends l'avis d'artragis sur le ticket que tu cites mais s'il est d'accord alors on ferme ici.