CLI

El CLI de meme.js, es una interfaz rápida y clara que te ayudará al manejo de los procesos del SDK de meme.js.

En este artículo te mostraré el funcionamiento del CLI, así como las funciones disponibles hasta ahora y te explicaré su funcionalidad.

Recuerda que para tener disponible el CLI en tu terminal, debiste instalar meme.js previamente, en este punto considerare que lo tienes instalado de forma global, por lo que solo usaremos el comando me.

Uso

Para el uso del CLI (al igual que cualquier otro), se ejecuta con el comando me, opcionalmente puedes introducir funciones, parámetros, tareas o entornos, para ejecutar un proceso específico.

Si solo introduces el comando me sin introducir ningúna función, se mostrará la ayuda rápida del CLI, que te indicará de forma breve cómo puedes utilizar las funciones existentes y sus alias.

Actualmente las funciones se dividen en dos tipos:

  • Funciones generales: estas funciones pueden ser ejecutadas en cualquier parte y no requieren de estar posicionados en un directorio o de incluir el parámetro -d para funcionar adecuadamente, los atributos generales son: help, versión, log y ls.
  • Funciones de proyecto: estas funciones ejecutan procesos específicos de un proyecto, por lo que deberás ejecutar estas funciones en el directorio de nuestro proyecto o en su defecto usar el parámetro -d para indicar la ruta relativa o absoluta de nuestro proyecto, las funciones de proyectos son: init, start, commands, build, reset y stop.

Función help [alias: -h]

Esta función muestra la ayuda rápida o la ayuda específica de otra función existente.

Si no introduces una función existente, por ejemplo:
me -h
, se te mostrará la ayuda rápida. Por el contrario si introduces una función existente o su alias, por ejemplo:
me -h version
, se te mostrará la ayuda específica de esa función, con una breve explicación de su uso y sus parámetros, en caso de que los acepte.

Función version [alias: -v]

Esta función nos mostrará la versión del paquete meme-sdk, con la que estamos trabajando actualmente.

Función log [alias: -l]

Debido a que con meme.js puedes levantar múltiples proyectos en segundo plano, el log de los proyectos se guarda de forma centralizada en un solo archivo.

Pues este comando nos mostrará el contenido de ese archivo de log, aunque para efectos de optimizar, solo se muestran las últimas 300 líneas del log.

Esta función bloquea la terminal, por lo que inicialmente se muestran las últimas 300 líneas, pero en caso de que existan nuevas líneas, igualmente se mostrarán en la terminal.

Esta función acepta los siguientes parámetros opcionales, para especificar su funcionalidad:

  • -all: Si introducimos este parámetro después de la función log, nos mostrará todas las líneas almacenadas en el log y no solo las últimas 300 líneas como haria por defecto, por ejemplo:
    me log -all
  • -clear: Este parámetro borrará el archivo actual del log, por ejemplo:
    me log -clear

Función ls

Debido a que meme.js por defecto inicia los proyectos como procesos en segundo plano, necesitamos este comando para poder ver una lista de los proyectos que actualmente están en ejecución, junto a sus especificaciones, como ruta, archivos de configuración cargados, puertos de los procesos, etc.

Función init [alias: -i]

Esta función creará una carpeta nueva con el nombre del proyecto, esta función también inicializará el proyecto de meme.js en esa carpeta, dejando todo listo para arrancar el proyecto.

Los datos que recolecta el CLI son:

  • Nombre: es el nombre que tendrá la carpeta y el proyecto (te aconsejo solo usar letras y guiones sin caracteres especiales, para facilitar el uso con terminal).
  • Tipo de Proyecto: le indica a meme.js el tipo de plantilla que usará para construir el proyecto.
  • Descripción: este dato es un texto descriptivo del proyecto, este dato es únicamente informativo.
  • Versión: este dato indica la versión del proyecto, y también es un dato únicamente informativo.
  • Autor: este dato indica el autor del proyecto, y también es un dato únicamente informativo.

Esta función acepta los siguientes parámetros opcionales, para especificar su funcionalidad:

  • -y: Con este parámetro especificamos que no queremos responder ninguna pregunta al inicializar el proyecto, y por ende todos los valores de la inicialización, serán los valores por defecto, por ejemplo:
    me init -y
    .
  • -install: Con este parámetro además de inicializarse un proyecto meme.js, también se inicializa un proyecto npm e instalar el paquete de meme-sdk de forma local (la instalación de dependencias se realiza de forma automática).

Función start [alias: -s]

Esta función inicia la compilación de todos los archivos, según la configuración del proyecto, además de levantar los procesos que meme.js requiere para funcionar.

Esta función acepta los siguientes parámetros opcionales, para especificar su funcionalidad:

  • -open: este parámetro le indica al CLI, que una vez que se han compilado todos los fuentes y se han levantado los servicios necesarios, se abrirá una pestaña con la dirección de nuestro proyecto, en nuestro navegador predeterminado.
  • -no-demon: como ya hemos visto anteriormente. meme.js se inicia como demonio. En caso de que no se requiera de esta característica, este parámetro nos permite levantar el proyecto como un proceso corriente, por lo que se bloqueara la terminal y el log se mostrará en la misma terminal, además de que no guardará líneas en el archivo central de log.
  • -one-server: Este parámetro nos permite levantar todos los servicios de nuestro proyecto en una sola url indicada en la configuración, en caso de que nos interese crear un monolito por ejemplo.
  • -d: Con este parámetro le podemos indicar al compilador, la carpeta de nuestro proyecto, con lo que no necesitaremos ejecutar el CLI en la carpeta del proyecto.
  • -e: Este parámetro nos permite ingresar los entornos que queremos ejecutar en el compilador. Todo lo que se ingrese después de este parámetro, será considerado un entorno (exista o no). Puedes ingresar múltiples entornos separados por un espacio y el compilador ejecutará todos en el orden ingresado. si quieres saber más sobre los entornos y su comportamiento, por favor visita: /docs/conf#cm_entornos

Función commands [alias: -c]

Esta función puede mostrar una lista de comandos de proyecto, por ejemplo:
me -c
, o puede ejecutar un comando de proyecto por ejemplo:
me -c <mi comando de proyecto>
. Si quieres saber más acerca de los comandos de proyecto, por favor visita: /docs/cli#commands.

Función build [alias: -b]

Esta función compila y construye todos los archivos del proyecto. Adicionalmente, resuelve dependencias y coloca todos los archivos necesarios en la carpeta de construcción, que se haya elegido para este fin. Todo esto con los parámetros establecidos en la configuración y el entorno elegido.

Esta función acepta los siguientes parámetros opcionales, para especificar su funcionalidad:

  • -d: Con este parámetro le podemos indicar al compilador, la carpeta de nuestro proyecto, con lo que no necesitaremos ejecutar el CLI en la carpeta del proyecto.
  • -e: Este parámetro nos permite ingresar los entornos que queremos ejecutar en el compilador. Todo lo que se ingrese después de este parámetro, será considerado un entorno (exista o no). Puedes ingresar múltiples entornos separados por un espacio y el compilador ejecutará todos en el orden ingresado. si quieres saber más sobre los entornos y su comportamiento, por favor visita: /docs/conf#cm_entornos.

Función reset [alias: -r]

Con esta función podemos reiniciar todos los procesos de nuestro proyecto o de todos los proyectos que estén corriendo en el momento que se ejecute la función.

Esta función acepta los siguientes parámetros opcionales, para especificar su funcionalidad:

  • -d: Con este parámetro le podemos indicar al compilador, la carpeta de nuestro proyecto, con lo que no necesitaremos ejecutar el CLI en la carpeta del proyecto.
  • -all: Como el comando reset, solo reinicia el proyecto actual, añadiendo este parámetro, se reiniciaran todos los procesos y proyectos que meme.js haya iniciado.

Función stop

meme.js es una plataforma que levanta los procesos del proyecto de forma independiente y modular, por lo que cada proyecto se mantiene arriba hasta que le indiquemos que queremos detener el proyecto.

Esta función detiene todos los procesos del proyecto, que levanta meme.js, ya sea de un solo proyecto o de todos los proyectos que actualmente se encuentran ejecutándose.

  • -d: Con este parámetro le podemos indicar al compilador, la carpeta de nuestro proyecto, con lo que no necesitaremos ejecutar el CLI en la carpeta del proyecto.
  • -all: Como el comando stop solo detiene el proyecto actual, añadiendo este otro parámetro, se detendrán todos los procesos y proyectos que el SDK haya levantado.