Closed rubycon closed 3 months ago
Bonjour,
Merci pour le retour détaillé. Les points concernant la dépendance a browser-sync et la génération de la config au build ont été corrigé en v1.12 Nous privilégions yarn pour l'installation des dépendances, qui aura pour avantage de ne pas avoir à utiliser le paramètre --legacy-peer-deps de npm.
Keryan, Pour l'équipe du DSFR
@keryanS Pour des raisons de sécurité, certaines administrations publiques (où le DSFR est utilisée) fournissent elles-même les postes de développement aux équipes. Ces postes sont extrêmement restreint et ne permettent pas d'utiliser autre chose que NPM. Le support de NPM serait apprécié.
Décrire le bug
L'installation du projet via NPM comme spécifiée dans la doc ne permet pas de visualiser les exemples. L'installation du projet via git n'est pas documentée (sauf dans la partie, plus technique, Contribution) et rend difficile la génération/consultation des exemples.
Les étapes pour reproduire le bug
Installation via NPM (ou Yarn) :
npm init
)npm install @gouvfr/dsfr
cd node_modules/@gouvfr/dsfr/
npm run serve
(❌ ERREUR: la dépendancesbrowser-sync
n'est pas installée)npm install -D browser-sync
npm run serve
🎉Installation via
git clone
:git clone https://github.com/GouvernementFR/dsfr.git
cd dsfr
npm install
(❌ ERREUR: conflit entre dépendances)npm install --legacy-peer-deps
(ignorer les conflits de dépendances)npm run build
(❌ ERREUR: fichier './.config/config.json' manquant)npm run build -- --config
ounpm run release
(génère le fichier de configuration avant de constuire le projet)npm run serve
🎉Comportement attendu
Lors de l'installation du paquet via NPM ou git, il devrait être possible de visualiser les exemples simplement comme indiqué dans la documentation :
Configuration et système utilisé
Informations complémentaires
Dans le cas de l'installation NPM, le problème vient de la dépendance
browser-sync
qui n'est pas installée automatiquement. Voici deux solutions possibles :browser-sync
en dépendance régulière (dependencies
) ou optionnelle (optionalDependencies
) du projet, elle sera ainsi installée automatiquement.browser-sync
en dépendance paire (peerDependencies
) et, dans la documentation, demander à l'utilisateur de l'installer manuellement.Concernant l'installation via
git clone
, il faudrait documenter la procédure dans la partie Installation de la doc (comme celà est déjà fait ici CONTRIBUTING.md).