zds-site
zds-site copied to clipboard
Le script d'installation Windows n'active pas l'environnement virtuel avant de l'installation du front-end
Description du bug
Après l'installation du back-end, le script d'installation Windows est censé activer l'environnement virtuel pour l'installation du front-end. Or, si cela n'est pas fait, c'est Node.js installé hors de l'environnement virtuel qui sera utilisé. Utilisant une version plus récente, l'installation a échoué.
J'ai dû installer le front-end manuellement de cette manière :
- Pour le dossier T
$ . .\zdsenv\Scripts\activate.ps1
$ npm rebuild node-sass
$ yarn run build
- Pour zMarkdown
$ cd ./zmd
$ yarn install
Comment reproduire ?
Installer zds-site via le script d'installation Windows avec une version de Node.js non compatible.
Du coup, la migration ne peut pas être faite par le script. Pour installer manuellement (dans zdsenv
) :
$ python manage.py loaddata (dir .\fixtures\*.yaml)
$ python manage.py load_factory_data .\fixtures\advanced\aide_tuto_media.yaml
$ python manage.py load_fixtures --size=low --all
L'environnement est correctement installé, c'est node-sass qui veut absolument utiliser la version globale… Je te conseille d'utiliser nvm sous windows et de modifier la procédure d'installation (=> indiquer que la personne doit désinstaller nodejs s'il est déjà utilisé, et installé nvm windows pour gérer correctement les différentes versions de nodejs).
On voit très bien que l'environnement est lancé : https://github.com/zestedesavoir/zds-site/blob/89c843d71d85b5232a7f51f242701fe778d8e7db/scripts/win/install_zds.ps1#L77
Après 2 après-midi entière sur le problème, j'avais trouvé comme solution : Désinstaller nodejs globalement, utiliser nvm.
Si c'est node-sass qui veut utiliser la version globale, pourquoi faire la commande moi-même dans le terminal a fonctionné ? Tout a été installé via le script sauf les choses à installer via yarn
et les migrations. Là, j'ai un truc qui fonctionne.
Je vais tenter de nouveau une installation pour voir exactement où ça bloque.
Tu n'as pas refais exactement la même procédure, tu as fais npm rebuild node-sass
qui n'est pas présente dans le code et ne fait pas la même chose
Cf. discussion dans le ticket #5851.
@Arnaud-D À fermer aussi si on enlève l'installation via PowerShell.