Bonjour Ă tous. ParallĂšlement au printemps, de nouveaux cours sont venus Ă OTUS, que nous commençons Ă introduire aujourd'hui. Recrutement dĂ©jĂ ouvert pour le cours "React.js developer" . Vous pouvez en savoir plus sur le cours lors du webinaire gratuit , qui se tiendra le 11 mars. Dans le cadre du mĂȘme webinaire, une petite application web sur ReactJS sera dĂ©veloppĂ©e.
Et maintenant, nous vous suggérons de lire l'article sur le déploiement de votre premiÚre application, qui a été écrit par notre auteur indépendant.
Le modĂšle de dĂ©marrage Create-react-app et Heroku sont d'excellents outils pour crĂ©er rapidement des applications basĂ©es sur le cloud, mais la documentation React et Heroku contient Ă©tonnamment peu d'informations sur la façon de dĂ©ployer votre application React sur Heroku. Les Ă©tapes dĂ©crites dans cet article fonctionneront sur tout projet créé Ă l'aide de create-react-app . Dans notre article, nous allons installer sur Heroku une application simple Ă faire avec le backend le plus minimal, juste pour regarder le processus lui-mĂȘme. Mais tout d'abord:Qu'est-ce que Heroku en gĂ©nĂ©ral? Pourquoi ai-je besoin de lui?
Heroku est une plate-forme cloud-as-a-service (PaaS) qui prend en charge de nombreux langages de programmation (et elle se vante et se démarque vraiment). L'histoire de Heroku a commencé en 2007, puis Ruby a été le premier langage de programmation. Il prend désormais en charge Java, Node.js, Scala, Clojure, Python, PHP et Go.Pourquoi ai-je besoin de ce cloud? Je peux acheter un hébergement bon marché
Oui, vous pouvez acheter un hĂ©bergement pour vous-mĂȘme et y installer le serveur Node.js, si ce service est pris en charge sur l'hĂ©bergement. Cependant, les plates-formes cloud ont des qualitĂ©s telles que, par exemple, la mesure de l'Ă©lasticitĂ© et de la consommation - si de nombreux utilisateurs visitent votre service, la plate-forme sera trĂšs probablement automatiquement (ou vous-mĂȘme en utilisant les outils fournis par la plate-forme) modulera ou rĂ©duira le flux. La comptabilisation de la consommation signifie que vous ne paierez que pour les ressources en demande. Les plates-formes cloud ont de nombreux autres avantages, une liste complĂšte peut ĂȘtre trouvĂ©e ici . Eh bien, nous irons directement au dĂ©ploiement.CrĂ©er votre propre application React
De quel type de modĂšle create-react-app s'agit-il ? Il est probablement impossible dâĂȘtre mĂȘme un peu impliquĂ© dans le dĂ©veloppement dâapplications React et de ne pas le savoir. Ce modĂšle fournit React, React-dom, Webpack, ESLint "sous le capot". Bien sĂ»r, vous pouvez crĂ©er vous-mĂȘme votre propre application React, mais pourquoi crĂ©er une application complexe avec un tas de dĂ©pendances lorsque vous pouvez utiliser un vĂ©lo prĂȘt Ă l'emploi?Pour commencer, assurez-vous que Node.js est installĂ© .Pour crĂ©er une nouvelle application, entrez les commandes suivantes dans la console: npx create-react-app test-app
cd test-app
Remarque utile, , create-react-app . npm install -g create-react-app
. , ( , ), - , react-scripts 3.4.0. , npm uninstall -g create-react-app
.
Ok, vous avez livrĂ© le package et vous souhaitez maintenant le dĂ©ployer. Afin de ne pas dĂ©ployer un package simple avec un composant que create-react-app dĂ©livre hors de la boĂźte, j'ai dĂ©cidĂ© d'Ă©crire une petite application todo, dont le code source, si vous voulez Ă©galement essayer de remplir votre application, peut ĂȘtre trouvĂ© ici . En bref, il y a un enregistrement d'Ă©tat sous la forme de nouvelles entrĂ©es Ă la mode , d'oĂč le texte des cas et leur identifiant , qui est gĂ©nĂ©rĂ© directement Ă partir de Date.now()
. J'ai participé à la mise en page des composants de Material-UI react .Vous pouvez mettre cette application pour vous et la déployer avec: npm i -D
npm start
Ensuite, nous avons une occasion incroyable de jouer et de créer nos propres affaires. Cependant, toutes les fonctionnalités de cette application permettent de sauvegarder les choses en état . Je n'ai fait aucune jarretiÚre au serveur ou au moins à localStorage , le but de cet article n'est pas celui-ci. Supposons que je suis trÚs paranoïaque et que je vais enregistrer mes affaires dans une seule inclusion de l'onglet du navigateur.Créez votre favicon
Pourquoi avons-nous mĂȘme besoin d'un serveur Node.js s'il n'y a pas de travail avec la base de donnĂ©es? En utilisant le serveur, nous donnerons un favicon et tout le reste du code. Dans notre application React , accĂ©dez au dossier public et supprimez le modĂšle favicon.ico Ă partir de lĂ . Je vais prendre l'icĂŽne d'ici et la transfĂ©rer dans le dossier public.CrĂ©ez votre serveur Express
Ensuite, nous créons notre serveur Express pour gérer la build. Directement dans le dossier de l'application, créez un fichier server.js
dans lequel se déroulera le travail de notre backend.Nous y écrivons ce qui suit: const express = require('express');
const favicon = require('express-favicon');
const path = require('path');
const port = process.env.PORT || 8080;
const app = express();
app.use(favicon(__dirname + '/build/favicon.png'));
app.use(express.static(__dirname));
app.use(express.static(path.join(__dirname, 'build')));
app.get('/ping', function (req, res) {
return res.send('pong');
});
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
app.listen(port);
Puisque nous utilisons des packages express , express-favicon et path , nous devons les installer: yarn add express express-favicon path -D
Dans nous package.json
changeons la commande de démarrage comme suit: "start": "node server.js",
Exécuter la génération
Ensuite, nous devons créer l'application à l'aide de la commande suivante: yarn build
Ce serait bien de tester que notre application fonctionne correctement. Pour ce faire, nous recrutons yarn start
et évaluons son bon fonctionnement.Masquer le sourcemap
Peut-ĂȘtre que vous ne voulez pas que quiconque puisse accĂ©der Ă votre code source. Dans ce cas, vous devez supprimer l'accĂšs au vĂŽtre sourcemap
. Pour ce faire, créez un fichier dans le référentiel .env
et interdisez la génération de cartes dans celui-ci: GENERATE_SOURCEMAP=false
Remarque utileSource map ( , , , , - ). â source map, , .
Déployer directement
Si vous n'avez pas encore de compte sur heroku , vous devez vous inscrire ici . Pour le dĂ©ploiement, vous devrez Ă©galement installer Heroku CLI Ă partir d'ici . Testez son fonctionnement en Ă©crivant la connexion heroku sur la ligne de commande. Ensuite, vous trouverez une redirection vers le site Web Heroku, oĂč vous devez vous connecter.Saisissez ensuite le nom de votre application. Dans mon cas, ce sera todoisakura313 , car vous ne pouvez pas utiliser de caractĂšres spĂ©ciaux ni de soulignements dans le nom de l'application: heroku create todoisakura313
Ensuite, nous enverrons notre build en utilisant les commandes suivantes: npm install
git add --all
git commit -m "first commit"
git push heroku master
Ces commandes vous permettront d'ajouter des dépendances, d'initialiser git
et de tĂ©lĂ©charger l'application elle-mĂȘme.Bien! En gĂ©nĂ©ral, tout est prĂȘt, maintenant l'application doit dĂ©jĂ apparaĂźtre Ă l'adresse https://< >.herokuapp.com/
. Vous pouvez ouvrir l'application en tapant les commandes suivantes dans la console:heroku open
En cas de problÚme, découvrez ce qui ne va pas avec l'équipe heroku logs --tail
. Cependant, en gĂ©nĂ©ral, si vous ne vous ĂȘtes pas Ă©cartĂ© des instructions de cet article, vous auriez dĂ» rĂ©ussir.C'est tout! Merci pour l'attention. Une application qui fonctionne peut ĂȘtre trouvĂ©e ici , et avec son code fini - ici .Et ceux qui ont lu jusqu'Ă la fin, nous vous invitons Ă un autre webinaire gratuit , dans le cadre duquel vous apprendrez les forces et les faiblesses des frameworks JS les plus populaires pour le dĂ©veloppement Frontend, comprendre pour quelles tĂąches quel framework est le mieux adaptĂ© et vous pouvez dĂ©cider lequel est le meilleur Ă©tudier.