Desplegar un proyecto web es un paso crucial en el desarrollo, y hacerlo de manera eficiente y sencilla es lo que busca cualquier desarrollador. Netlify es una excelente opción para esto, ya que ofrece una manera amigable y práctica de llevar tus proyectos al entorno de producción. Aunque existen varias plataformas, en esta ocasión, utilizaremos Netlify por su facilidad para integrarse con repositorios como GitHub, GitLab o Bitbucket y su capacidad de realizar despliegues automáticos tras los cambios en tu código.
¿Cómo prepararse antes de usar Netlify?
Antes de comenzar con Netlify, necesitas crear una cuenta. Una vez registrado, es fundamental conectar tu repositorio en la nube. Esto significa subir el proyecto que estás trabajando a plataformas como GitHub, GitLab o Bitbucket. Después de hacerlo, puedes configurar un hook en Netlify que permita despliegues automáticos cada vez que realices cambios.
Creación de archivos de configuración
Para que Netlify despliegue correctamente tu proyecto, es necesario crear un archivo de configuración llamado netlify.toml. Aquí puedes especificar detalles como la carpeta que se publicará y los comandos a ejecutar durante el despliegue. Un ejemplo de estas configuraciones podría ser:
[build]publish="dist"command="npm run build"
¿Cómo subir cambios a tu repositorio?
Los cambios que realices deben subirse a tu repositorio de forma ordenada. Primero verifica si tienes cambios pendientes con git status. Si es así, agréguelos y haz un commit usando una herramienta como Gitmoji, que permite clasificar tus commits con iconos para una mejor visualización. Un ejemplo podría ser:
¿Qué hacer en caso de errores durante el despliegue?
Desgraciadamente, los errores son parte del proceso, pero puedes aprender mucho de ellos. Por ejemplo, si Netlify indica que hay un problema con un módulo como Stylus, puedes solucionarlo instalándolo dentro de tu proyecto:
npminstall stylus --save
También es importante asegurarte de que todos los recursos necesarios del proyecto, como las variables de entorno, están correctamente configuradas. Esto se hace creando un script personalizado que genere estas variables en el servidor antes del build.
¿Cómo configurar variables de entorno en Netlify?
Para gestionar variables de entorno críticas como API keys, crea un script que genere un archivo .env en el servidor, y configúralas en Netlify en la sección de Environment dentro de Deploy Settings. Añades la variable con su correspondiente valor, asegurando que solo Netlify tenga acceso a esa información.
Ejemplo de Script en Node.js para Variables de Entorno
Una vez que tengas configurado todo, Netlify puede realizar automáticamente el despliegue cada vez que se detecten cambios en tu rama principal. Revisa en la interfaz de Netlify para comprobar que tus cambios se han aplicado correctamente y que el proceso de despliegue se completó con éxito.
Finalmente, al concluir, puedes previsualizar el sitio desde el enlace proporcionado por Netlify, asegurándote de que todo esté funcionando según lo esperado.
Explorar más opciones dentro de Netlify puede abrirte un espectro de posibilidades para gestionar tus proyectos de manera eficiente, mantén siempre la curiosidad y el deseo de optimizar tus procesos. ¡Es hora de que tus proyectos luzcan con todo su potencial en la web!
hombre, todos tus aportes me ayudaron a entender este curso, muchas gracias
Gracias por todos tus aportes.
Estuve 1 hora sin entender por que no me funcionaba el deploy, hasta que me doy cuenta que escribí el directorio "scripts" como "script", y por cosa rara mi cerebro ignoraba la falta de la s.
Sucede muchas veces, pero es alentador cuando lo encuentras :D
El nombre se lo añadiste con la consola del navegador cierto?
Compadres y comadres. Le cuento que cuando estaba haciendo el despliegue me salió este error: "build.command" failed; según vi en la pagina de Netlify, dicho error se debe a unos cambios que hicieron y recomiendan usar CI.
Teniendo en cuenta lo anterior, fuí al archivo netlify.toml e hice el cambio...CI = "npm run build"
¡funcionó de maravilla!
a mi me sigue gsaliendo el mismo error, cambie command por CI pero no hace ningun cambio.
El
CI=''
Se lo tenemos que pasar al comando de build de netlify, asi.
CI='' npm run build
O en el respectivo netlify.toml
Lo primero que debemos hacer es crear una cuenta en Netlify. Lo siguiente es crear un archivo en la raíz del proyecto llamado netlify.toml el cual va a llevar la siguiente configuración:
## **netlify.toml**[build] publish ="dist"// ¿cual va a ser la carpeta a publicar? command ="npm run build"// Comando a ejecutar para el deploy
Para el siguiente paso debemos ya tener nuestro repositorio en algún servicio de la nube, como Github. Ahora, vamos a la pagina de Netlify para crear el nuevo sitio.
Crear nuevo sitio → Seleccionar nube (Github) → Elegir repositorio y rama a subir → Deploy
Apartir de ahora Netlify nos levanta el servidor de manera gratuita, este proceso puede ser lento ya que es un servicio gratuito. En el summary de nuestro deploy podemos ver el log del build donde podriamos ver los errores presentes.
En el proyecto actual, al hacer uso de una variable de entorno, necesitamos realizar la siguiente configuración para que Netlify pueda trabajar con ella: Creamos una carpeta llamada scripts/ y adentro de esta carpeta vamos a crear un archivo llamado create-env.js. En este archivo vamos a colocar este código
Pero ¿de dónde vamos a obtener/setear el process.env? Lo vamos a asignar en netlify, en nuestro deploy vamos a buscar la Sección de Enviroment → Enviroment Variables → Edit Variables. En nuestro caso la llamaremos API y asignaremos el valor de nuestro API:
Ahora, debemos ejecutar este script antes de ejecutar el comando de build, para que sea enviado a netlify. Vamos a nuestro package.json y vamos a modificar el script build de la siguiente manera:
⚠️Cuidado al anidar la ejecución de scripts, porque si el primero en ejecutarse lo hace como demonio, puede causar un problema ya que no va a ejecutarse el segundo script.
Luego de todos estos cambios debemos empujarlos a la nube ✌🏻
Bueno, a esta altura no debería ser mucho problema levantar el repo a Github, pero dejo una guía paso a paso por si sirva a alguien. El primer paso es:
Crear un repositorio en tu perfil de Github (repositories-new) y copiar la url del repo.
En la consola estando en el directorio en que estamos trabajando ingresar: <git init>
Luego dar <git add . > para de esta forma agregar todos los archivos de la carpeta.
Luego hacer commit con una breve descripción: <git commit -m "Inicia el proyecto">
Luego, si queremos alzar a Github con git add remote, tendremos que nuestro repositorio está referenciado al repositorio de Gndx, que es de donde bajamos el proyecto incial. Entonces, para referenciar a nuestro repositorio hacemos: <git remote set url origin ....> y seguidamente copiamos el enlace de nuestro repositorio en Github.
Finalmente, alzamos todo repo a la nube con <git push origin main>
Y listo, con esto tienes tu repositorio en la nube
Muchas gracias
MUCHAS gracias!
Recuerden que si en el repo tienen varias carpetas además de la que contiene el proyecto EJ:
Podrían tener el error que netlify no encuentra el package.json, para eso tienen que agregar el directorio base al que tendrá que moverse la maquina para encontrar el package.json así:
Yo estuve bastante con ese problema, espero ayudarle a alguien 😁
:thumbsup:
Les comparto mi resultado: link
Te quedo muy bien 👍
Hola, buenas tardes, necesito saber porqué en mi entorno local se ejecuta bien, en netlify no hay errores al hacer el PREVIEW se dirige al proyecto pero no me lo muestra, me aparece en blanco la pantalla.
En console. log me aparece esto
Estoy mirando y cuando ejecuto npm run build en el archivo .env API se vuelve UNDEFINED, ¿por qué puede suceder esto?
En getData.js no reconoce process.env.API
@gndx please help me!!!
tengo el mismo problema :(
ODIO Y ODIARÉ ESTE CURSO😡
En definitiva un desastre de curso… DEBEN DE RENOVARLO demasiados errores, el profesor no explica con claridad, hasta la página de Netlify es completamente otra!!! Mal Platzi todo muy mal…
me molesta tanto que usen estas plataformas para enseñar un deploy o un paso mas alla del desarrollo de la aplicacion, porque no muestran las cosas como son, como coger mi VPS y montar mis cosas alli bien montadas, como si fuera posible meter los costos e imposibilidades de estas plataformas a un cliente, eso si no me gusta de platzi, usando vainas todas facilistas para enseñar, asi no hacemos desarrolladores de calidad, mostrarlas decir que existen es buena idea pero no dejarnos con que con esas vainas se hace el trabajo siempre, no hagan eso recuerden que pagamos para no tener que pegarnos de google y youtube despues, si saben hacerlo enseñenlo porfavir
Este es el segundo curso de Platzi que veo y la verdad que se nota el porque de su éxito.
Me da mucho gusto este comentario.
Yo hice el deploy en GitHub pages :D
me parece mas facil con github pages n.n
18.-Deploy a Netlify
.
Permite desplegar los sitios de manera amigable, conectándonos con el repo que estemos usando, aceptar permisos, etc.
Crear cuenta.
Conectar nuestro repositorio. No sin antes mandar el proyecto al repositorio en cuestión.
Para configurarlo hacemos lo siguiente:
Creamos un archivo que nos ayude a tener la configuración. El archivo se llamara netlify.toml y dentro ponemos lo siguiente.
Subimos los cambios al repo haciendo el push correspondiente.
Configuración en netlify:
Seleccionamos "new site from git".
Elegimos la herramienta que usamos para guardar el repo.
Escogemos el repositorio.
Llenamos las opciones: owner, branch to deploy, build command, publish directory.
Deploy site.
Esperamos que se asigne un server para que se ejecute el servicio. Durante este momento netlify habilita una máquina virtual que descarga el repo y corre las instrucciones necesarias para tener node y una instancia que ejecute el proyecto. Después ejecuta el comando que asignamos y toma la carpeta resultante para ponerla en la página.
En el tiempo de compilación en el server, no tiene acceso a .env, por lo que no está accediendo a las variables de entorno, las cuales afectan la página. Para solucionar esto vamos a:
Crear una carpeta llamada "scripts" (podemos crear todos los que necesitemos).
Creamos un archivo llamado "create-env.js" que corre sobre node
const fs =require("fs");//Requiere de file system que nos permite trabajar con el SO//Nos permite hacer, guardar o enviar datos en archivos de nuestra computadorafs.writeFileSync("./.env",`API=${process.env.API}\n`);//Creamos el archivo y lo llenamos con la información que necesitamos//Este script se corre en el server.
Lo asignamos en netlify →deploy settings → Environment → Edit variables
key: API value:
Y lo guardamos. Esta variable solo se la estoy compartiendo a netlify.
Antes de enviar los cambios ejecutamos el script antes del build. Modificamos el package.json. NOTA: Podemos anidar diferentes elementos en el script, aquí el primero es ejecutar el script y el segundo mandarlo a producción. Si uno de estos elementos se queda procesando un elemento que no termina no continua con el siguiente script.
Netlify automáticamente escucha el cambio, y ya no tenemos que decirle nada.