React.js es una biblioteca de Javascript que se utiliza para crear interfaces de usuario rápidas e interactivas para aplicaciones de una sola página. Debido a su flexibilidad y simplicidad, es la primera opción de cualquier desarrollador para el desarrollo de aplicaciones móviles y web. Permite componer interfaces de usuario complejas a partir de piezas de código pequeñas y aisladas llamadas "componentes". Actualmente, es utilizado por muchas empresas, incluidas Facebook, Instagram, Twitter, Airbnb y más.
En este tutorial, te enseñamos a implementar una aplicación React.js con Nginx en Ubuntu 20.04.
Requisitos
- Un servidor cloud Ubuntu 20.04.
- Un nombre de dominio válido que apunte a la IP de tu servidor.
- Un usuario root o con privilegios sudo.
Instala Node.js
Antes de comenzar, Node.js y NPM han de estar instalados en tu servidor. Si no es así, tienes que añadir el repositorio Nodesource a tu sistema.
Primero, instala las dependencias requeridas con el siguiente comando:
# apt-get update && apt-get upgrade && apt-get install curl gnupg2 gcc g++ make libssl-dev -yA continuación, añade el repositorio Nodesource con el comando que te mostramos a continuación:
# curl -sL https://deb.nodesource.com/setup_current.x -o nodesource_setup.sh && bash nodesource_setup.shPara continuar, instala Node.js y NPM con el siguiente comando:
# apt-get install nodejs -y && npm install npm@latest -gUna vez instalado, puedes verificar la versión de Node.js y NPM utilizando el siguiente comando:
# node --version && npm --versionDeberías ver la versión de Node.js y NPM del siguiente modo:
v16.10.0
7.24.2
Instala la Utilidad create-react-app
create-react-appes es una herramienta de líneas de comando que se utiliza para establecer todas las herramientas requeridas para crear una aplicación React. Puedes instalarla con el siguiente comando:
# npm -g install create-react-appUna vez instalada, verifica la versión instalada con el siguiente comando:
# create-react-app --versionDeberías ver el siguiente resultado:
4.0.3Crea tu primera Aplicación React
En este apartado crearás una app React llamada reactapp inside /root directory:
# create-react-app reactappDeberías obtener el siguiente resultado:
Success! Created reactapp at /root/reactapp
Inside that directory, you can run several commands:
npm start
Starts the development server.
npm run build
Bundles the app into static files for production.
npm test
Starts the test runner.
npm run eject
Removes this tool and copies build dependencies, configuration files
and scripts into the app directory. If you do this, you can’t go back!
We suggest that you begin by typing:
cd reactapp
npm start
Happy hacking!
Para iniciar tu aplicación, tienes que navegar por el directorio y correr el siguiente comando:
# cd ~/reactapp && npm startDeberías ver el siguiente resultado:
Compiled successfully!
You can now view reactapp in the browser.
http://localhost:3000
Note that the development build is not optimized.
To create a production build, use npm run build
Haz clic en "CTRL+C" para parar la aplicación.
Crea una estructura de producción para tu Aplicación
A estas alturas, tienes un proyecto de app React que corre con éxito. Ahora necesitarás crear una estructura de producción. Puedes hacerlo con el siguiente comando:
# npm run buildEsto compilará JavaScript y sus activos en el directorio de la estructura como se muestra más abajo:
Creating an optimized production build...
Compiled successfully.
File sizes after gzip:
41.34 KB build/static/js/2.8d09931e.chunk.js
1.62 KB build/static/js/3.07870480.chunk.js
1.16 KB build/static/js/runtime-main.73bd03cc.js
589 B build/static/js/main.1dd9d4b2.chunk.js
556 B build/static/css/main.a617e044.chunk.css
The project was built assuming it is hosted at /.
You can control this with the homepage field in your package.json.
The build folder is ready to be deployed.
You may serve it with a static server:
npm install -g serve
serve -s build
Find out more about deployment here:
https://cra.link/deploymentA este punto, ya tienes un directorio de estructura dentro del directorio de tu app React. Ahora necesitarás desplegar este directorio con Nginx.
Configura Nginx para desplegar la App React
En primer lugar, instala el paquete de servidor Nginx con el siguiente comando:
# apt-get install nginx python3-certbot-nginx -yUna vez que Nginx se haya instalado, crea un directorio para la app React con el siguiente comando:
# mkdir /var/www/html/reactA continuación, copia todos los contenidos desde el directorio de la estructura al directorio React:
# cp -r /root/reactapp/build/* /var/www/html/react/En el siguiente paso, establece la propiedad adecuada del directorio React con el siguiente comando:
# chown -R www-data:www-data /var/www/html/reactPara seguir, crea un archivo de configuración host virtual de Nginx para alojar tu app React:
# nano /etc/nginx/sites-enabled/react.confAñade las siguientes líneas:
server {
listen 80;
listen [::]:80;
root /var/www/html/react/;
index index.html index.htm;
# MODIFICAR EJEMPLO DE SERVER_NAME
server_name react.ejemplo.com;
location / {
try_files $uri $uri/ =404;
}
}Guarda y cierra el archivo y después verifica Nginx para evitar cualquier error de sintaxis:
# nginx -tSi todo ha ido bien, deberías obtener el siguiente resultado:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reinicia el servicio Nginx para aplicar los cambios:
# systemctl restart nginxPara terminar, puedes utilizar certbot para adquirir un certificado para el registro:
# certbot --nginx -d react.ejemplo.com --redirectAccede a la Aplicación React.js
Para terminar, abre tu navegador web y accede a la aplicación React.js desde la URL https://react.example.com. Deberías ver la siguiente pantalla:
Conclusión
Con esta guía, ¡has instalado React.js con éxito y creado una aplicación en React! Ya puedes desplegar tu propia aplicación React.js en un entorno de producción.