Bienvenue dans ce modèle/template de projet React !
- Première utilisation
- Comment démarrer un projet ?
- Build du projet
- Utilitaires
- Dépendances
- Scripts
- Prérequis
Seul ce modèle ne sert pas à grand chose : l'idée est de se baser sur le modèle et de le faire tourner dans un autre projet.
Il suffit donc de le cloner dans le même dossier qui abritera vos projets.
On peut se baser sur lui pour :
- démarrer un nouveau projet avec un environnement fiable et configuré
- travailler sur un challenge avec des dossiers, des fichiers pré-existants
Il s'agit essentiellement de copier/coller les parties intéressantes du modèle dans le dossier du projet, sans écraser d'éventuels fichiers spécifiques.
Pour ce faire :
-
rendez vous dans le dossier qui va contenir votre nouveau projet
le dossier
React-modele-vite
doit aussi s'y trouver -
lancer l'assistant pour récupérer le dépôt distant :
cd dossier/avec/mes_challenges # Exemple : ../../../Spe-React # lancer le script ./React-modele-vite/bin/install.sh # si nécessaire, donner les droits à ce fichier : # `chmod +x ./React-modele-vite/bin/install.sh` # (un `sudo` peut être nécessaire) # renseigner soit : # - le nom de votre nouveau projet (ex : my-app) # - soit l'adresse SSH d'un dépôt Git (ex : [email protected]:O-clock-MA_PROMO/NOM_CHALLENGE.git)
-
ou copier manuellement les dossiers et fichiers :
```sh # Exemple : après avoir cloné un challenge dans le dossier mon-challenge/ # direction le dossier du challenge cd mon-challenge # copie des fichiers cachés et non-cachés présents à la racine du modèle # note : des alertes sont affichées à propos de dossiers ignorés, c'est normal cp -n ../React-modele-vite/{.*,*} . # copie (récursive) des dossiers src/, config/ et public/ # note : des alertes peuvent être affichées à propos de fichiers ignorés, c'est normal cp -rn ../React-modele-vite/{src,public} . # installation des dépendances listées dans le package.json pnpm install # lancement du serveur de dev pnpm dev ```
Le mode d'utilisation par défaut consiste à lancer un serveur de développement avec la commande pnpm dev
.
Dans ce cas tout est géré en mémoire : on ne voit jamais le résultat concret du travail de Vite.
Vite peut toutefois produire une version concrète du projet
dans un dossier dist/
avec la commande pnpm build
.
build
permet de construire le projet pour la production
(version prête pour hébergement).
- assemblage des fichiers
- copie de fichiers
- nettoyage du code
- minification du code
- …
# dans le dossier du projet
cd mon-challenge
# build de production : les fichiers sont rassemblés *et optimisés*
pnpm build
Certaines extensions sont conseillées avec ce modèle ;
vous trouverez la liste dans le fichier .vscode/extensions.js
.
Dans ce dossier, vous trouverez aussi quelques recommendations de configuration de VS Code.
Linter pour le JavaScript : vous permet de trouver et de corriger (quelquefois automatiquement) des erreurs dans votre code.
https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
Code formatter : impose un style cohérent en analysant votre code et en le réimprimant avec des règles configurées.
https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode
En combinaison avec EsLint et Prettier, renforce leur diagnostic et améliore la lisibilité des erreurs et avertissements.
https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens
Renomme automatiquement les balises HTML/JSX jumelées.
https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag
Fournit des icônes pour vos fichiers et dossier.
https://marketplace.visualstudio.com/items?itemName=pkief.material-icon-theme
Coloration syntaxique améliorée pour ES6+.
https://marketplace.visualstudio.com/items?itemName=mgmcdermott.vscode-language-babel
Vite est un bundler (Task Runner ou Builder) ; c'est un automatiseur de tâches :
- transpilation JS par Babel
- conversion Sass vers CSS
- optimisation du build
En mode développement, il s'appuie sur esbuild ; tandis qu'il utilise Rollup pour la production.
Pour transpiler du code ES2015+/JSX vers du JS ES5, Vite utilise Babel.
Appelé par le plugin @vitejs/plugin-react
.
Il est possible d'utiliser SWC à la place grâce au plugin
@vitejs/plugin-react-swc
-
eslint
- ESLint, linter / analyseur de code JS. -
eslint-config-airbnb
- Configuration Airbnb pour ESLint. -
eslint-config-prettier
- Évite les éventuels conflits avec Prettier (le formateur de code). -
Plugins :
eslint-plugin-prettier
- Considère Prettier comme une règle ESLint.eslint-plugin-import
- Analyse les imports de fichiers.eslint-plugin-react
- Analyse le code React.eslint-plugin-react-hooks
- Analyse les hooks de React.eslint-plugin-jsx-a11y
- Analyse l'accessibilité du JSX.
# Avec pnpm
pnpm {script}
# Avec npm
npm run {script}
dev
: lance le serveur de développementbuild
: lance la construction de la version de productionpreview
: permet de lancer un serveur pour visualiser le code après un buildlint
: lance ESLintlint:fix
: corrige les erreurs auto-fixables
Linux
Ubuntu :
sudo apt install nodejs
Pour les autres distributions, vérifier https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions
Ou https://nodejs.org/en/download/package-manager/
Alternative via NVM
NVM est un outil permettant de gérer plusieurs installations de plusieurs versions de node
MacOS
- A télécharger directement sur https://nodejs.org/en/
Ou
- Installer homebrew
- Puis node avec la commande
brew install node
Windows
- A télécharger directement sur https://nodejs.org/en/
Ou
- Installer chocolatey
- Puis node avec la commande
choco install nodejs
Linux
Méthode via npm
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Si vous utilisez NVM
MacOS
- A télécharger directement sur https://nodejs.org/en/
Ou
Méthode via npm
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Windows
- A télécharger directement sur https://nodejs.org/en/
Ou
- Si vous utilisez chocolatey
choco upgrade nodejs
Suivre https://pnpm.io/installation#using-corepack en fonction de votre OS