Comenzamos con el multi State Build.
Si quieren esto lo pueden borrar porque ya lo tiene como documentación o lo escriben en algún documento
para que tengan a mano.
Igual lo tienen en el repositorio que yo les dejé anteriormente.
Voy a borrar esto y aquí también por los momentos voy a borrar la plataforma.
Borremos esto de aquí también para mantener, para mantenerlo un poquito más limpio.
Pero después vamos a añadir esto cuando hagamos el build para diferentes plataformas, ustedes ya saben
cómo.
Ok, No usamos la misma versión.
Quitamos.
Estoy aquí.
Hacemos el movimiento a la carpeta.
Esto está bien, Hacemos la parte del copy del package JSON, el punto slash inclusive a mi me gusta
más trabajar con Jean porque tenía una forma de hacer el Frozen de los archivos de dependencias, lo
cual puede ser bastante útil, pero eso ya es algo muy propio de Node y por ahora, por ahora voy a
llegar hasta este punto de instalar únicamente las dependencias.
Todo esto de aquí podría ser nuestra primera etapa, nuestro primer state, y este state va a ser conocido
as debs o dependencias o dependencias o el nombre que ustedes quieran darle.
Ok.
Esto por cierto, ustedes también lo tienen en la hoja de atajos que yo les estoy dejando.
Recuerden, eso está aquí.
En el Bulk State se asigna un alias a la etapa llamada en este caso Builder, la cual permite realizar
el multi State.
Tal vez la descripción no es muy útil, o sea, no es la más exacta.
Básicamente eso es lo que es.
Pero sabemos como es la sintaxis gracias a ese documento.
Entonces, lo que estoy haciendo aquí es como que yo tenga un Linux o una máquina con Linux, no?
Es decir, basado en esto y a esa versión de Linux o esa.
A toda esta instalación que tengo le voy a llamar dependencias o Debs o ese es el nombre que le estoy
dando a ese servidor.
Y ese servidor se navega a la carpeta Pep.
Copié el package JSON y únicamente copié eso y luego hice la instalación.
Punto.
Esa es la primera etapa.
Todo esto es nuestra primera etapa.
Ahora otra etapa va a salir exactamente de esta misma versión cuando ustedes miren otro from.
Esto es una nueva etapa.
Ok?
Esto es una nueva etapa en nuestra.
En nuestro Multi State Build.
Eso le vamos a poner de nombre.
Si quiere le podemos poner algo como Builder Builder y Tester o tester o el nombre que ustedes quieran.
Pero quiero.
Lo que quiero hacer yo es testear y construir.
Eso es básicamente todo lo que quiero hacer en esta etapa, es decir, probar mi aplicación que pasa
en el UNIT Test, que es lo que teníamos nosotros definidos aquí.
Que pase esta prueba, que recuerden que ustedes no saben que es esto.
Vayan a la sección respectiva que fue la sección anterior y lo expliqué.
Entonces en este Builder es donde yo quiero hacer esa construcción.
Técnicamente también podría primero poner una etapa que se llama test, pero ahí queda mucho a su discreción.
Ok, bien, pues tenemos un par de enters nuevamente.
Esto es como que no hiciéramos nada aquí arriba.
Ok?
Es como que estuviéramos empezando absolutamente de nuevo.
Una imagen totalmente fresca.
No hay nada.
Cuál va a ser el siguiente paso?
Bueno, vamos a movernos al Working Directory.
Las app exactamente igual.
Una vez en el directorio que necesito, vamos a ver qué necesito.
Yo ocuparía copiar el código fuente, decir todo lo que yo necesito por 100%.
Aquí tenemos un README.
Este archivo README, el que básicamente dice que fue lo que yo utilicé para construirlo, será el archivo
que se ve al inicio cuando estábamos viéndolo en GitHub, entre otros lugares este readme.
Tampoco es necesario que nosotros lo lo movamos entonces en nuestro Docker.
Y también voy a colocar aquí el RID mi punto de envío.
No necesito que ese archivo vaya por ahí.
Ok, perdón por eso.
Entonces, regresando a el Working Directory, yo ocupo copiar los archivos, pero también necesito
ejecutar el run del npm install nuevamente.
En teoría más de uno va a ir.
Bueno, entonces.
Cuál fue el objetivo de esto?
Ok, exactamente.
Eso es.
Yo no necesito ejecutar el npm install para reconstruirme dependencias.
No?
Por qué?
Porque esa dependencia ya están acá.
Yo puedo en esta etapa hacer referencia a la etapa anterior con este nombre.
Entonces yo lo que voy a hacer aquí es copiar de el origen, que en este caso si yo lo pongo punto sería
mi equipo, pero yo no quiero que lo copie de mi computadora, quiero que lo copie de la computadora
que creé anteriormente con esta imagen, o sea con este state que hice aquí.
Entonces voy a hacer referencia mediante el menos menos from y aquí me dice Stage.
Por eso es que en algún lado dicen Station, en otro lado State.
Entonces voy a tomarlo de este stage o decir esta etapa.
Voy a copiar de ahí y ahora puedo especificar cuál es el origen, es decir, en dónde están los módulos
de Node.
Los módulos de Node están en el slash, app, slash node modules.
Esto es donde yo creé cuando yo hago el npm install se están creando ahí.
Por qué?
Porque estoy en el working directory y luego hice el npm y ahí aparecen los módulos de no, aquí más
de uno va a decir bueno, y qué pasa con este working directory?
Este working directory es para este esta versión fresca de Linux que tengo ok, para esta, este estrecho,
este state ok, o esta paz o este paso.
Ok.
Y ahora me falta colocar el destino en donde lo voy a colocar y aquí me sugiere la app.
Lo podemos colocar de esa manera o lo puedo colocar punto slash y quiero que eso lo copie en node modules.
Hay varias formas de definirlo así lo puedo dejar de esa manera o nuevamente lo puedo poner aquí?
Es la app node modules como ustedes quieran, pero nuevamente ya estoy trabajando en el working directory,
usamos ese working directory de esa forma.
Ok, ya copiamos todas las dependencias.
Yo no necesito ser otra, otro paso de instalación.
Ahora puedo copiar todo lo que se encuentre en mi host que no está incluido en el doc y lo voy a pegar
a esta nueva versión de mi Linux, mi Linux fresco.
Una vez estando a este paso, ya tengo todos los archivos.
Todo, todo, todo el proyecto.
Yo lo tengo ahí.
Voy a ejecutar el test.
Entonces puedo venir aquí.
Qué cosa?
NPM, run test.
Y si esto llegara a fallar no se sigue ejecutando nada más de mi aplicación.
Que por cierto, ya, ya estamos viendo que estamos llegando a este punto, no precisamente de esta
etapa.
Copiamos los modelos de nodo, ya lo tenemos acá, copiamos el fuente y todo lo que no está excluido
en el vector y ejecutamos el testing.
Ahí Ciertas tecnologías en este caso que están involucradas en el desarrollo de aplicaciones de Node,
como por ejemplo Needs break Angular, View expert o cualquier otra aplicación en las cuales hay una
etapa en la cual yo tengo que ejecutar el npm run build y por eso lo estoy dejando así como builder,
porque aquí es donde construiríamos la aplicación, pero nosotros en nuestro paquete JSON no tenemos
ningún tipo de build.
El vial sería el procedimiento en el cual construimos la aplicación optimizada para producción.
Nosotros no tenemos ese paso y básicamente llegamos hasta aquí con el builder.
Básicamente copiamos las dependencias, probamos todo y si sale bien, si sale bien todo el testing,
entonces pasamos a la siguiente etapa.
La siguiente etapa cual es?
Qué creen ustedes?
La siguiente etapa debería ser relativamente sencillo.
Si quieren ustedes analicen la y traten de hacerla por su cuenta.
Vamos a ver, analicen qué cosas son las que nosotros ocupamos de aquí, qué cosas son las que ocupamos
copiar y analicémoslo y terminen con este comando.
Esta es la finalización de esa nueva etapa, esa nueva etapa le van a poner runner, es decir, runner,
le van a poner ese nombre como de corredor runner pero con la r minúscula.
Entonces van a ponerle pausa al video.
Quiero que ustedes creen los pasos que internamente en su cabeza creen que son necesarios para ejecutar
la aplicación, para correr la aplicación, mejor dicho.
Ok, entonces vamos al video, traten de hacer esto por su cuenta y yo regreso con la solución en unos
instantes.
Pero recuerden, esto puede ser bien subjetivo.
Personas pueden tener diferentes soluciones a pesar de que tengamos que hacer el mismo tarea.
Alguien puede decir ah, bueno, yo voy a copiar este paso primero, yo voy a hacer ese otro paso,
después voy a hacer esto, antes, voy a hacer esto después, etcétera, etcétera, etcétera No hay
una única solución correcta, ok, entonces van a ponerle pausa, video, traten de hacerlo y una vez
terminan, si quieren ustedes podrían probar hacer el video de la imagen, le pueden poner otro tag,
que se yo le voy a poner perro o cualquier otro nombre a esta imagen.
Pueden probarlo a ver qué tal les va, pero nuevamente póngale paso al video y mi solución la van a
tener en la próxima clase.