Démarrer un nouveau projet React n’est pas aussi simple. Au lieu de plonger directement dans le code et de donner vie à votre application, vous devez passer du temps à configurer les bons outils de construction pour mettre en place un environnement de développement local, des tests unitaires et une version de production. Heureusement, l'aide est à portée de main sous la forme de l'application Create React.
Create-React-App est un outil de ligne de commande de Facebook qui vous permet de générer un nouveau projet React et d'utiliser une version de pack web préconfigurée Pour le developpement. Il fait depuis longtemps partie intégrante de l'écosystème React qui élimine le besoin de maintenir des pipelines de construction complexes dans votre projet, vous permettant de vous concentrer sur l'application elle-même.
Comment fonctionne Create React App?
Create React App is un outil autonome qui peut être exécuté à l'aide de npm ou de Yarn.
Vous pouvez générer et exécuter un nouveau projet à l'aide de npm simplement avec quelques commandes:
npx create-react-app new-app
cd nouvelle application
npm début
Si vous préférez Yarn, vous pouvez le faire comme ceci:
yarn create react-app new-app
cd nouvelle application
fil début
Create React App configurera la structure de projet suivante:
new-app
├── .gitignore
├── node_modules
├── package.json
├── public
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ └── robots.txt
├── README.md
├── src
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ ├── reportWebVitals.js
│ └── setupTests.js
└── yarn.lock
Il ajoutera également un package react-scripts
à votre projet qui contiendra tous les scripts de configuration et de construction. En d'autres termes, votre projet dépend de react-scripts
pas de create-react-app
lui-même. Une fois l'installation terminée, vous pouvez lancer le serveur de développement et commencer à travailler sur votre projet.
Fonctionnalités de base
Serveur de développement local
La première chose dont vous aurez besoin est un environnement de développement local. Lancer npm start
lancera un serveur de développement Webpack avec un observateur qui rechargera automatiquement l'application une fois que vous aurez changé quelque chose. À partir de la version 4, l'application Create React prend en charge l'actualisation rapide de React comme alternative au remplacement de module à chaud. Comme son prédécesseur, cela nous permet d'actualiser rapidement certaines parties de l'application après avoir apporté des modifications à la base de code, mais présente également de nouvelles fonctionnalités. Fast Reload essaiera de recharger uniquement la partie modifiée de l'application, conservera l'état des composants fonctionnels et des hooks, et rechargera automatiquement l'application après avoir corrigé une erreur de syntaxe.
Vous pouvez également servir votre application via HTTPS, en définissant le HTTPS
variable à true
avant d'exécuter le serveur.
L'application sera générée avec de nombreuses fonctionnalités intégrées.
ES6 et ES7
L'application est livrée avec son propre Babel preset – babel-preset-react-app – pour prendre en charge un ensemble de fonctionnalités ES6 et ES7. Certaines des fonctionnalités prises en charge sont:
- Async / await
- Propriétés de repos / propagation d'objet
- Importation dynamique ()
- Champs de classe et propriétés statiques
Notez que Create React App ne fournit aucun polyfill pour
Importation d'actifs
Vous pouvez importer des fichiers CSS, des images ou des polices à partir de vos modules JavaScript qui vous permettent de regrouper les fichiers utilisés dans votre application . Une fois l'application créée, Create React App copiera ces fichiers dans le dossier de construction. Voici un exemple d'importation d'image:
import image from './ image.png' ;
console . log ( image ) ;
Vous pouvez également utiliser cette fonctionnalité en CSS:
.image {
background-image : url ( ./ image.png ) ;
}
Styling
Comme mentionné dans la section précédente, Create React App vous permet d'ajouter des styles en important simplement les fichiers CSS requis. Lors de la construction de l'application, tous les fichiers CSS seront concaténés en un seul paquet et ajoutés au dossier de construction.
Create React App prend également en charge les modules CSS . Par convention, les fichiers nommés *. Module.css
sont traités comme des modules CSS. Cette technique nous permet d'éviter les conflits de sélecteurs CSS, puisque Create React App créera des sélecteurs de classe uniques dans les fichiers CSS résultants.
Alternativement, si vous préférez utiliser des préprocesseurs CSS, vous pouvez importer Sass . fichiers scss
. Cependant, vous devrez installer le package node-sass
séparément.
De plus, Create React App fournit un moyen d'ajouter CSS Resets en ajoutant @ import- normalize;
n'importe où dans vos fichiers CSS. Les styles subissent également un post-traitement, ce qui les minimise, ajoute des préfixes de fournisseur à l'aide de l'Autoprefixer et remplit des fonctions non prises en charge, telles que la propriété all
les propriétés personnalisées et les plages de requêtes multimédias.
Running Unit Tests
] L'exécution de npm test
lancera des tests en utilisant Jest et démarrera un observateur pour les réexécuter chaque fois que vous changez quelque chose:
PASS src / App.test.js
✓ rend learn react lien ( 19 ms )
Suites de tests: 1 réussie, 1 au total
Tests: 1 réussi, 1 total
Instantanés: 0 au total
Heure: 0,995 s
A exécuté toutes les suites de test .
Utilisation de la montre
›Appuyez sur f pour exécuter uniquement les tests ayant échoué.
›Appuyez sur o pour exécuter uniquement les tests liés aux fichiers modifiés.
›Appuyez sur q pour quitter le mode montre .
›Appuyez sur p pour filtrer par un modèle d'expression régulière de nom de fichier.
›Appuyez sur t pour filtrer par un modèle d'expression régulière de nom test .
›Appuyez sur Entrée pour lancer un test .
Jest est un testeur également développé par Facebook comme alternative à Mocha ou Karma. Il exécute les tests dans un environnement Node au lieu d'un vrai navigateur, mais fournit certains des globaux spécifiques au navigateur en utilisant jsdom .
Jest est également intégré à votre système de contrôle de version et par défaut ne fonctionnera que tests sur les fichiers modifiés depuis votre dernier commit. Pour plus d'informations, reportez-vous à « Comment tester des composants de réaction à l'aide de Jest ».
ESLint
Pendant le développement, votre code sera également exécuté via ESLint un fichier statique analyseur de code qui vous aidera à repérer les erreurs pendant le développement.
Création d'un bundle de production
Lorsque vous avez enfin quelque chose à déployer, vous pouvez créer un bundle de production en utilisant npm run build
. Cela générera une version optimisée de votre application, prête à être déployée dans votre environnement. Les artefacts générés seront placés dans le dossier build:
build
├── asset-manifest.json
├── favicon.ico
├── index.html
├── logo192.png
├── logo512.png
├── manifest.json
├── robots.txt
└── statique
├── css
│ ├── main.ab7136cd.chunk.css
│ └── main.ab7136cd.chunk.css.map
├── js
│ ├── 2.8daf1b57.chunk.js
│ ├── 2.8daf1b57.chunk.js.LICENSE.txt
│ ├── 2.8daf1b57.chunk.js.map
│ ├── 3.d75458f9.chunk.js
│ ├── 3.d75458f9.chunk.js.map
│ ├── main.1239da4e.chunk.js
│ ├── main.1239da4e.chunk.js.map
│ ├── runtime-main.fb72bfda.js
│ └── runtime-main.fb72bfda.js.map
└── médias
└── logo.103b5fa1.svg
Déploiement
Étant donné que la construction de votre application Create React App se compose uniquement de fichiers statiques, vous pouvez les déployer de différentes manières dans votre environnement distant. Vous pouvez utiliser un serveur Node.js si vous exécutez dans un environnement Node.js, ou servir l'application à l'aide d'un autre serveur Web, tel que NGINX.
La section de déploiement dans la documentation officielle fournit une vue d'ensemble du déploiement de l'application sur Azure, AWS, Heroku, Netlify et d'autres environnements d'hébergement populaires.
Fonctionnalités de développement
Variables d'environnement
Vous pouvez utiliser des variables d'environnement Node pour injecter des valeurs dans votre code à l'adresse temps de construction. Create React App recherchera automatiquement toutes les variables d'environnement commençant par REACT_APP_
et les rendra disponibles sous le global process.env
. Ces variables peuvent être dans un fichier .env
pour plus de commodité:
REACT_APP_BACKEND = http://my-api.com
REACT_APP_BACKEND_USER = racine
Vous pouvez ensuite les référencer dans votre code:
fetch ( { process . env . REACT_APP_SECRET_CODE } ] / endpoint )
Proxying to a Back End
Si votre application doit fonctionner avec un back-end distant, vous devrez peut-être être en mesure de proxy des requêtes pendant le développement local pour contourner CORS. Cela peut être configuré en ajoutant un champ proxy à votre fichier package.json
:
"proxy" : "http: // localhost: 4000" ,
De cette façon, le serveur transmettra toute demande qui ne pointe pas vers un fichier statique vers l'adresse donnée.
Division de code
L'application Create React prend en charge la division de code à l'aide de dynamic import () . Au lieu de renvoyer les valeurs exportées par le module, il renverra à la place une promesse qui se résout dans ces valeurs. Par conséquent, les modules importés de cette manière ne seront pas inclus dans le bundle final, mais intégrés dans des fichiers séparés. Cela vous permet de réduire la taille du bundle final et de charger le contenu à la demande.
Support TypeScript
Vous pouvez activer TypeScript pour bénéficier des avantages de l'analyse de type statique lors de la génération d'un nouveau projet. Cela peut être fait en utilisant un autre modèle autre que celui par défaut pour générer le projet:
npx create-react-app my-app --template typescript
Vous pouvez également ajouter la prise en charge de TypeScript à un projet existant, comme décrit dans la documentation .
Progressive Web Apps
De même, vous pouvez ajouter une prise en charge progressive des applications Web. Vous pouvez utiliser des services workers en ajoutant un fichier src / service-worker.js
. À partir de la v4, il sera injecté dans l'application à l'aide de la bibliothèque Workbox .
Pour activer les services workers dans un nouveau projet, ils doivent être générés à partir d'un modèle personnalisé:
npx create- react-app mon-application - modèle cra-template-pwa
npx create-react-app mon-application - modèle cra-template-pwa-typescript
Web Vitals
Create React App vous permet de mesurer les performances et la réactivité de votre application. Ceci est fait en suivant les métriques définies par web vitals et mesurées à l'aide de la bibliothèque web-vitals . Les métriques comprennent Largest Contentful Paint qui mesure les performances de chargement, First Input Delay et Cumulative Layout Shift pour la réactivité.
Create React App fournit une application pratique. pour suivre toutes les métriques disponibles:
reportWebVitals ( console . log ) ;
Opting Out
Si à un moment donné vous pensez que les fonctionnalités fournies ne sont plus suffisantes pour votre projet, vous pouvez toujours désactiver l'utilisation de react-scripts
en exécutant npm run eject
. Cela copiera la configuration du pack Web et construira les scripts de react-scripts
dans votre projet et supprimera la dépendance. Après cela, vous êtes libre de modifier la configuration comme bon vous semble.
Vous pouvez également créer un fork de react-scripts
et gérer votre branche avec les fonctionnalités dont vous avez besoin. Cela peut être plus facile, au cas où vous auriez de nombreux projets à gérer.
En conclusion
Si vous cherchez à démarrer un nouveau projet React, ne cherchez pas plus loin. Create React App vous permettra de commencer rapidement à travailler sur votre application au lieu d'écrire une autre configuration Webpack. Cela facilite également la mise à jour de vos outils de construction avec une seule commande ( npm install react-scripts @ latest
), ce qui est généralement une tâche ardue et chronophage.
Create React App est devenu un partie intégrante de l'écosystème React. Que vous l'utilisiez pour assembler un prototype rapide ou pour échafauder votre prochain grand projet, cela vous fera gagner de nombreuses heures de développement.
Source link